Files
oci-portal-dash/src/api/analytics.ts
T

29 lines
913 B
TypeScript

import { mockCosts, mockTraffic } from './mock'
import { mockOn, mocked, request } from './request'
import type { CostItem, InstanceTraffic } from '@/types/api'
export function getInstanceTraffic(
cfgId: number,
instanceId: string,
days = 30,
region?: string,
): Promise<InstanceTraffic> {
if (mockOn) return mocked(mockTraffic, 800)
return request(`/oci-configs/${cfgId}/instances/${encodeURIComponent(instanceId)}/traffic`, {
query: { days, region },
})
}
export interface CostQuery {
startTime?: string
endTime?: string
granularity?: 'HOURLY' | 'DAILY' | 'MONTHLY'
queryType?: 'COST' | 'USAGE'
groupBy?: 'service' | 'skuName' | 'region' | 'compartmentName' | 'service,skuName'
}
export function getCosts(cfgId: number, query: CostQuery = {}): Promise<CostItem[]> {
if (mockOn) return mocked(mockCosts)
return request(`/oci-configs/${cfgId}/costs`, { query: { ...query } })
}