| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- package source
- import (
- "time"
- "github.com/julienschmidt/httprouter"
- "github.com/opencost/opencost/core/pkg/clusters"
- )
- type ClusterMetricsQuerier interface {
- // Cluster Disks
- QueryPVActiveMinutes(start, end time.Time) *Future[PVActiveMinutesResult]
- QueryPVUsedAverage(start, end time.Time) *Future[PVUsedAvgResult]
- QueryPVUsedMax(start, end time.Time) *Future[PVUsedMaxResult]
- // Local Cluster Disks
- QueryLocalStorageActiveMinutes(start, end time.Time) *Future[LocalStorageActiveMinutesResult]
- QueryLocalStorageCost(start, end time.Time) *Future[LocalStorageCostResult]
- QueryLocalStorageUsedCost(start, end time.Time) *Future[LocalStorageUsedCostResult]
- QueryLocalStorageUsedAvg(start, end time.Time) *Future[LocalStorageUsedAvgResult]
- QueryLocalStorageUsedMax(start, end time.Time) *Future[LocalStorageUsedMaxResult]
- QueryLocalStorageBytes(start, end time.Time) *Future[LocalStorageBytesResult]
- QueryLocalStorageBytesByProvider(provider string, start, end time.Time) *Future[LocalStorageBytesByProviderResult]
- QueryLocalStorageUsedByProvider(provider string, start, end time.Time) *Future[LocalStorageUsedByProviderResult]
- // Nodes
- QueryNodeActiveMinutes(start, end time.Time) *Future[NodeActiveMinutesResult]
- QueryNodeCPUCoresCapacity(start, end time.Time) *Future[NodeCPUCoresCapacityResult]
- QueryNodeCPUCoresAllocatable(start, end time.Time) *Future[NodeCPUCoresAllocatableResult]
- QueryNodeRAMBytesCapacity(start, end time.Time) *Future[NodeRAMBytesCapacityResult]
- QueryNodeRAMBytesAllocatable(start, end time.Time) *Future[NodeRAMBytesAllocatableResult]
- QueryNodeGPUCount(start, end time.Time) *Future[NodeGPUCountResult]
- QueryNodeCPUModeTotal(start, end time.Time) *Future[NodeCPUModeTotalResult]
- QueryNodeIsSpot(start, end time.Time) *Future[NodeIsSpotResult]
- QueryNodeCPUModePercent(start, end time.Time) *Future[NodeCPUModePercentResult]
- QueryNodeRAMSystemPercent(start, end time.Time) *Future[NodeRAMSystemPercentResult]
- QueryNodeRAMUserPercent(start, end time.Time) *Future[NodeRAMUserPercentResult]
- // Load Balancers
- QueryLBActiveMinutes(start, end time.Time) *Future[LBActiveMinutesResult]
- QueryLBPricePerHr(start, end time.Time) *Future[LBPricePerHrResult]
- // Cluster Management
- QueryClusterManagementDuration(start, end time.Time) *Future[ClusterManagementDurationResult]
- QueryClusterManagementPricePerHr(start, end time.Time) *Future[ClusterManagementPricePerHrResult]
- // Cluster Costs
- QueryDataCount(start, end time.Time) *Future[DataCountResult]
- QueryTotalGPU(start, end time.Time) *Future[TotalGPUResult]
- QueryTotalCPU(start, end time.Time) *Future[TotalCPUResult]
- QueryTotalRAM(start, end time.Time) *Future[TotalRAMResult]
- QueryTotalStorage(start, end time.Time) *Future[TotalStorageResult]
- // Cluster Costs
- QueryClusterCores(start, end time.Time, step time.Duration) *Future[ClusterCoresResult]
- QueryClusterRAM(start, end time.Time, step time.Duration) *Future[ClusterRAMResult]
- QueryClusterStorage(start, end time.Time, step time.Duration) *Future[ClusterStorageResult]
- QueryClusterStorageByProvider(provider string, start, end time.Time, step time.Duration) *Future[ClusterStorageResult]
- QueryClusterTotal(start, end time.Time, step time.Duration) *Future[ClusterTotalResult]
- QueryClusterTotalByProvider(provider string, start, end time.Time, step time.Duration) *Future[ClusterTotalResult]
- QueryClusterNodes(start, end time.Time, step time.Duration) *Future[ClusterNodesResult]
- QueryClusterNodesByProvider(provider string, start, end time.Time, step time.Duration) *Future[ClusterNodesResult]
- }
- type AllocationMetricsQuerier interface {
- QueryPods(start, end time.Time) *Future[PodsResult]
- QueryPodsUID(start, end time.Time) *Future[PodsResult]
- QueryRAMBytesAllocated(start, end time.Time) *Future[RAMBytesAllocatedResult]
- QueryRAMRequests(start, end time.Time) *Future[RAMRequestsResult]
- QueryRAMUsageAvg(start, end time.Time) *Future[RAMUsageAvgResult]
- QueryRAMUsageMax(start, end time.Time) *Future[RAMUsageMaxResult]
- QueryNodeRAMPricePerGiBHr(start, end time.Time) *Future[NodeRAMPricePerGiBHrResult]
- QueryCPUCoresAllocated(start, end time.Time) *Future[CPUCoresAllocatedResult]
- QueryCPURequests(start, end time.Time) *Future[CPURequestsResult]
- QueryCPUUsageAvg(start, end time.Time) *Future[CPUUsageAvgResult]
- QueryCPUUsageMax(start, end time.Time) *Future[CPUUsageMaxResult]
- QueryNodeCPUPricePerHr(start, end time.Time) *Future[NodeCPUPricePerHrResult]
- QueryGPUsAllocated(start, end time.Time) *Future[GPUsAllocatedResult]
- QueryGPUsRequested(start, end time.Time) *Future[GPUsRequestedResult]
- QueryGPUsUsageAvg(start, end time.Time) *Future[GPUsUsageAvgResult]
- QueryGPUsUsageMax(start, end time.Time) *Future[GPUsUsageMaxResult]
- QueryNodeGPUPricePerHr(start, end time.Time) *Future[NodeGPUPricePerHrResult]
- QueryGPUInfo(start, end time.Time) *Future[GPUInfoResult]
- QueryIsGPUShared(start, end time.Time) *Future[IsGPUSharedResult]
- QueryPodPVCAllocation(start, end time.Time) *Future[PodPVCAllocationResult]
- QueryPVCBytesRequested(start, end time.Time) *Future[PVCBytesRequestedResult]
- QueryPVCInfo(start, end time.Time) *Future[PVCInfoResult]
- QueryPVBytes(start, end time.Time) *Future[PVBytesResult]
- QueryPVPricePerGiBHour(start, end time.Time) *Future[PVPricePerGiBHourResult]
- QueryPVInfo(start, end time.Time) *Future[PVInfoResult]
- QueryNetZoneGiB(start, end time.Time) *Future[NetZoneGiBResult]
- QueryNetZonePricePerGiB(start, end time.Time) *Future[NetZonePricePerGiBResult]
- QueryNetRegionGiB(start, end time.Time) *Future[NetRegionGiBResult]
- QueryNetRegionPricePerGiB(start, end time.Time) *Future[NetRegionPricePerGiBResult]
- QueryNetInternetGiB(start, end time.Time) *Future[NetInternetGiBResult]
- QueryNetInternetPricePerGiB(start, end time.Time) *Future[NetInternetPricePerGiBResult]
- QueryNetReceiveBytes(start, end time.Time) *Future[NetReceiveBytesResult]
- QueryNetTransferBytes(start, end time.Time) *Future[NetTransferBytesResult]
- QueryNamespaceAnnotations(start, end time.Time) *Future[NamespaceAnnotationsResult]
- QueryPodAnnotations(start, end time.Time) *Future[PodAnnotationsResult]
- QueryNodeLabels(start, end time.Time) *Future[NodeLabelsResult]
- QueryNamespaceLabels(start, end time.Time) *Future[NamespaceLabelsResult]
- QueryPodLabels(start, end time.Time) *Future[PodLabelsResult]
- QueryServiceLabels(start, end time.Time) *Future[ServiceLabelsResult]
- QueryDeploymentLabels(start, end time.Time) *Future[DeploymentLabelsResult]
- QueryStatefulSetLabels(start, end time.Time) *Future[StatefulSetLabelsResult]
- QueryDaemonSetLabels(start, end time.Time) *Future[DaemonSetLabelsResult]
- QueryJobLabels(start, end time.Time) *Future[JobLabelsResult]
- QueryPodsWithReplicaSetOwner(start, end time.Time) *Future[PodsWithReplicaSetOwnerResult]
- QueryReplicaSetsWithoutOwners(start, end time.Time) *Future[ReplicaSetsWithoutOwnersResult]
- QueryReplicaSetsWithRollout(start, end time.Time) *Future[ReplicaSetsWithRolloutResult]
- QueryDataCoverage(limitDays int) (time.Time, time.Time, error)
- }
- type OpenCostDataSource interface {
- ClusterMetricsQuerier
- AllocationMetricsQuerier
- NewClusterMap(clusterInfoProvider clusters.ClusterInfoProvider) clusters.ClusterMap
- RegisterEndPoints(router *httprouter.Router)
- BatchDuration() time.Duration
- Resolution() time.Duration
- MetaData() map[string]string
- }
|