| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344 |
- package source
- import (
- "github.com/opencost/opencost/core/pkg/util"
- )
- const (
- ClusterIDLabel = "cluster_id"
- NamespaceLabel = "namespace"
- NodeLabel = "node"
- InstanceLabel = "instance"
- InstanceTypeLabel = "instance_type"
- ContainerLabel = "container"
- PodLabel = "pod"
- PodNameLabel = "pod_name"
- ProviderIDLabel = "provider_id"
- DeviceLabel = "device"
- PVCLabel = "persistentvolumeclaim"
- PVLabel = "persistentvolume"
- StorageClassLabel = "storageclass"
- VolumeNameLabel = "volumename"
- ServiceLabel = "service"
- ServiceNameLabel = "service_name"
- IngressIPLabel = "ingress_ip"
- ProvisionerNameLabel = "provisioner_name"
- UIDLabel = "uid"
- KubernetesNodeLabel = "kubernetes_node"
- ModeLabel = "mode"
- ModelNameLabel = "modelName"
- UUIDLabel = "UUID"
- ResourceLabel = "resource"
- DeploymentLabel = "deployment"
- StatefulSetLabel = "statefulSet"
- ReplicaSetLabel = "replicaset"
- OwnerNameLabel = "owner_name"
- OwnerKindLabel = "owner_kind"
- UnitLabel = "unit"
- InternetLabel = "internet"
- SameZoneLabel = "same_zone"
- SameRegionLabel = "same_region"
- )
- const (
- NoneLabelValue = "<none>"
- )
- type PVResult struct {
- Cluster string
- PersistentVolume string
- }
- type PVUsedAvgResult struct {
- Cluster string
- Namespace string
- PersistentVolumeClaim string
- Data []*util.Vector
- }
- func DecodePVUsedAvgResult(result *QueryResult) *PVUsedAvgResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- pvc, _ := result.GetString(PVCLabel)
- return &PVUsedAvgResult{
- Cluster: cluster,
- Namespace: namespace,
- PersistentVolumeClaim: pvc,
- Data: result.Values,
- }
- }
- type PVActiveMinutesResult struct {
- Cluster string
- PersistentVolume string
- Data []*util.Vector
- }
- func DecodePVActiveMinutesResult(result *QueryResult) *PVActiveMinutesResult {
- cluster, _ := result.GetCluster()
- pv, _ := result.GetString(PVLabel)
- return &PVActiveMinutesResult{
- Cluster: cluster,
- PersistentVolume: pv,
- Data: result.Values,
- }
- }
- type PVUsedMaxResult struct {
- Cluster string
- Namespace string
- PersistentVolumeClaim string
- Data []*util.Vector
- }
- func DecodePVUsedMaxResult(result *QueryResult) *PVUsedMaxResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- pvc, _ := result.GetString(PVCLabel)
- return &PVUsedMaxResult{
- Cluster: cluster,
- Namespace: namespace,
- PersistentVolumeClaim: pvc,
- Data: result.Values,
- }
- }
- type LocalStorageActiveMinutesResult struct {
- Cluster string
- Node string
- ProviderID string
- Data []*util.Vector
- }
- func DecodeLocalStorageActiveMinutesResult(result *QueryResult) *LocalStorageActiveMinutesResult {
- cluster, _ := result.GetCluster()
- node, _ := result.GetNode()
- if node == "" {
- node, _ = result.GetInstance()
- }
- providerId, _ := result.GetProviderID()
- return &LocalStorageActiveMinutesResult{
- Cluster: cluster,
- Node: node,
- ProviderID: providerId,
- Data: result.Values,
- }
- }
- type LocalStorageCostResult struct {
- Cluster string
- Instance string
- Device string
- Data []*util.Vector
- }
- func DecodeLocalStorageCostResult(result *QueryResult) *LocalStorageCostResult {
- cluster, _ := result.GetCluster()
- instance, _ := result.GetInstance()
- device, _ := result.GetDevice()
- return &LocalStorageCostResult{
- Cluster: cluster,
- Instance: instance,
- Device: device,
- Data: result.Values,
- }
- }
- type LocalStorageUsedCostResult struct {
- Cluster string
- Instance string
- Device string
- Data []*util.Vector
- }
- func DecodeLocalStorageUsedCostResult(result *QueryResult) *LocalStorageUsedCostResult {
- cluster, _ := result.GetCluster()
- instance, _ := result.GetInstance()
- device, _ := result.GetDevice()
- return &LocalStorageUsedCostResult{
- Cluster: cluster,
- Instance: instance,
- Device: device,
- Data: result.Values,
- }
- }
- type LocalStorageUsedAvgResult struct {
- Cluster string
- Instance string
- Device string
- Data []*util.Vector
- }
- func DecodeLocalStorageUsedAvgResult(result *QueryResult) *LocalStorageUsedAvgResult {
- cluster, _ := result.GetCluster()
- instance, _ := result.GetInstance()
- device, _ := result.GetDevice()
- return &LocalStorageUsedAvgResult{
- Cluster: cluster,
- Instance: instance,
- Device: device,
- Data: result.Values,
- }
- }
- type LocalStorageUsedMaxResult struct {
- Cluster string
- Instance string
- Device string
- Data []*util.Vector
- }
- func DecodeLocalStorageUsedMaxResult(result *QueryResult) *LocalStorageUsedMaxResult {
- cluster, _ := result.GetCluster()
- instance, _ := result.GetInstance()
- device, _ := result.GetDevice()
- return &LocalStorageUsedMaxResult{
- Cluster: cluster,
- Instance: instance,
- Device: device,
- Data: result.Values,
- }
- }
- type LocalStorageBytesResult struct {
- Cluster string
- Instance string
- Device string
- Data []*util.Vector
- }
- func DecodeLocalStorageBytesResult(result *QueryResult) *LocalStorageBytesResult {
- cluster, _ := result.GetCluster()
- instance, _ := result.GetInstance()
- device, _ := result.GetDevice()
- return &LocalStorageBytesResult{
- Cluster: cluster,
- Instance: instance,
- Device: device,
- Data: result.Values,
- }
- }
- type NodeActiveMinutesResult struct {
- Cluster string
- Node string
- ProviderID string
- Data []*util.Vector
- }
- func DecodeNodeActiveMinutesResult(result *QueryResult) *NodeActiveMinutesResult {
- cluster, _ := result.GetCluster()
- node, _ := result.GetNode()
- providerId, _ := result.GetProviderID()
- return &NodeActiveMinutesResult{
- Cluster: cluster,
- Node: node,
- ProviderID: providerId,
- Data: result.Values,
- }
- }
- type NodeCPUCoresCapacityResult struct {
- Cluster string
- Node string
- Data []*util.Vector
- }
- func DecodeNodeCPUCoresCapacityResult(result *QueryResult) *NodeCPUCoresCapacityResult {
- cluster, _ := result.GetCluster()
- node, _ := result.GetNode()
- return &NodeCPUCoresCapacityResult{
- Cluster: cluster,
- Node: node,
- Data: result.Values,
- }
- }
- type NodeCPUCoresAllocatableResult = NodeCPUCoresCapacityResult
- func DecodeNodeCPUCoresAllocatableResult(result *QueryResult) *NodeCPUCoresAllocatableResult {
- return DecodeNodeCPUCoresCapacityResult(result)
- }
- type NodeRAMBytesCapacityResult struct {
- Cluster string
- Node string
- Data []*util.Vector
- }
- func DecodeNodeRAMBytesCapacityResult(result *QueryResult) *NodeRAMBytesCapacityResult {
- cluster, _ := result.GetCluster()
- node, _ := result.GetNode()
- return &NodeRAMBytesCapacityResult{
- Cluster: cluster,
- Node: node,
- Data: result.Values,
- }
- }
- type NodeRAMBytesAllocatableResult = NodeRAMBytesCapacityResult
- func DecodeNodeRAMBytesAllocatableResult(result *QueryResult) *NodeRAMBytesAllocatableResult {
- return DecodeNodeRAMBytesCapacityResult(result)
- }
- type NodeGPUCountResult struct {
- Cluster string
- Node string
- ProviderID string
- Data []*util.Vector
- }
- func DecodeNodeGPUCountResult(result *QueryResult) *NodeGPUCountResult {
- cluster, _ := result.GetCluster()
- node, _ := result.GetNode()
- providerId, _ := result.GetProviderID()
- return &NodeGPUCountResult{
- Cluster: cluster,
- Node: node,
- ProviderID: providerId,
- Data: result.Values,
- }
- }
- type NodeCPUModeTotalResult struct {
- Cluster string
- Node string
- Mode string
- Data []*util.Vector
- }
- func DecodeNodeCPUModeTotalResult(result *QueryResult) *NodeCPUModeTotalResult {
- cluster, _ := result.GetCluster()
- node, _ := result.GetString(KubernetesNodeLabel)
- mode, _ := result.GetString(ModeLabel)
- return &NodeCPUModeTotalResult{
- Cluster: cluster,
- Node: node,
- Mode: mode,
- Data: result.Values,
- }
- }
- type NodeIsSpotResult struct {
- Cluster string
- Node string
- ProviderID string
- Data []*util.Vector
- }
- func DecodeNodeIsSpotResult(result *QueryResult) *NodeIsSpotResult {
- cluster, _ := result.GetCluster()
- node, _ := result.GetNode()
- providerId, _ := result.GetProviderID()
- return &NodeIsSpotResult{
- Cluster: cluster,
- Node: node,
- ProviderID: providerId,
- Data: result.Values,
- }
- }
- type NodeRAMSystemPercentResult struct {
- Cluster string
- Instance string
- Data []*util.Vector
- }
- func DecodeNodeRAMSystemPercentResult(result *QueryResult) *NodeRAMSystemPercentResult {
- cluster, _ := result.GetCluster()
- instance, _ := result.GetInstance()
- return &NodeRAMSystemPercentResult{
- Cluster: cluster,
- Instance: instance,
- Data: result.Values,
- }
- }
- type NodeRAMUserPercentResult = NodeRAMSystemPercentResult
- func DecodeNodeRAMUserPercentResult(result *QueryResult) *NodeRAMUserPercentResult {
- return DecodeNodeRAMSystemPercentResult(result)
- }
- type LBActiveMinutesResult struct {
- Cluster string
- Namespace string
- Service string
- IngressIP string
- Data []*util.Vector
- }
- func DecodeLBActiveMinutesResult(result *QueryResult) *LBActiveMinutesResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- service, _ := result.GetString(ServiceNameLabel)
- ingressIp, _ := result.GetString(IngressIPLabel)
- return &LBActiveMinutesResult{
- Cluster: cluster,
- Namespace: namespace,
- Service: service,
- IngressIP: ingressIp,
- Data: result.Values,
- }
- }
- type LBPricePerHrResult = LBActiveMinutesResult
- func DecodeLBPricePerHrResult(result *QueryResult) *LBPricePerHrResult {
- return DecodeLBActiveMinutesResult(result)
- }
- type ClusterManagementDurationResult struct {
- Cluster string
- Provisioner string
- Data []*util.Vector
- }
- func DecodeClusterManagementDurationResult(result *QueryResult) *ClusterManagementDurationResult {
- cluster, _ := result.GetCluster()
- provisioner, _ := result.GetString(ProvisionerNameLabel)
- return &ClusterManagementDurationResult{
- Cluster: cluster,
- Provisioner: provisioner,
- Data: result.Values,
- }
- }
- type ClusterManagementPricePerHrResult = ClusterManagementDurationResult
- func DecodeClusterManagementPricePerHrResult(result *QueryResult) *ClusterManagementPricePerHrResult {
- return DecodeClusterManagementDurationResult(result)
- }
- type PodsResult struct {
- UID string
- Cluster string
- Namespace string
- Pod string
- Data []*util.Vector
- }
- func DecodePodsResult(result *QueryResult) *PodsResult {
- uid, _ := result.GetString(UIDLabel)
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- pod, _ := result.GetPod()
- return &PodsResult{
- UID: uid,
- Cluster: cluster,
- Namespace: namespace,
- Pod: pod,
- Data: result.Values,
- }
- }
- type ContainerMetricResult struct {
- Cluster string
- Node string
- Instance string
- Namespace string
- Pod string
- Container string
- Data []*util.Vector
- }
- func DecodeContainerMetricResult(result *QueryResult) *ContainerMetricResult {
- cluster, _ := result.GetCluster()
- node, _ := result.GetNode()
- instance, _ := result.GetInstance()
- // NOTE: this addresses cases where the node isn't set, but the instance is,
- // NOTE: we just inherit the instance as the node
- if node == "" {
- node = instance
- }
- namespace, _ := result.GetNamespace()
- pod, _ := result.GetPod()
- container, _ := result.GetContainer()
- return &ContainerMetricResult{
- Cluster: cluster,
- Node: node,
- Instance: instance,
- Namespace: namespace,
- Pod: pod,
- Container: container,
- Data: result.Values,
- }
- }
- type RAMBytesAllocatedResult = ContainerMetricResult
- func DecodeRAMBytesAllocatedResult(result *QueryResult) *RAMBytesAllocatedResult {
- return DecodeContainerMetricResult(result)
- }
- type RAMRequestsResult = ContainerMetricResult
- func DecodeRAMRequestsResult(result *QueryResult) *RAMRequestsResult {
- return DecodeContainerMetricResult(result)
- }
- type RAMUsageAvgResult = ContainerMetricResult
- func DecodeRAMUsageAvgResult(result *QueryResult) *RAMUsageAvgResult {
- return DecodeContainerMetricResult(result)
- }
- type RAMUsageMaxResult = ContainerMetricResult
- func DecodeRAMUsageMaxResult(result *QueryResult) *RAMUsageMaxResult {
- return DecodeContainerMetricResult(result)
- }
- type NodeRAMPricePerGiBHrResult struct {
- Cluster string
- Node string
- InstanceType string
- ProviderID string
- Data []*util.Vector
- }
- func DecodeNodeRAMPricePerGiBHrResult(result *QueryResult) *NodeRAMPricePerGiBHrResult {
- cluster, _ := result.GetCluster()
- node, _ := result.GetNode()
- instanceType, _ := result.GetInstanceType()
- providerId, _ := result.GetProviderID()
- return &NodeRAMPricePerGiBHrResult{
- Cluster: cluster,
- Node: node,
- InstanceType: instanceType,
- ProviderID: providerId,
- Data: result.Values,
- }
- }
- type CPUCoresAllocatedResult = ContainerMetricResult
- func DecodeCPUCoresAllocatedResult(result *QueryResult) *CPUCoresAllocatedResult {
- return DecodeContainerMetricResult(result)
- }
- type CPURequestsResult = ContainerMetricResult
- func DecodeCPURequestsResult(result *QueryResult) *CPURequestsResult {
- return DecodeContainerMetricResult(result)
- }
- type CPUUsageAvgResult = ContainerMetricResult
- func DecodeCPUUsageAvgResult(result *QueryResult) *CPUUsageAvgResult {
- return DecodeContainerMetricResult(result)
- }
- type CPUUsageMaxResult = ContainerMetricResult
- func DecodeCPUUsageMaxResult(result *QueryResult) *CPUUsageMaxResult {
- return DecodeContainerMetricResult(result)
- }
- type NodeCPUPricePerHrResult struct {
- Cluster string
- Node string
- InstanceType string
- ProviderID string
- Data []*util.Vector
- }
- func DecodeNodeCPUPricePerHrResult(result *QueryResult) *NodeCPUPricePerHrResult {
- cluster, _ := result.GetCluster()
- node, _ := result.GetNode()
- instanceType, _ := result.GetInstanceType()
- providerId, _ := result.GetProviderID()
- return &NodeCPUPricePerHrResult{
- Cluster: cluster,
- Node: node,
- InstanceType: instanceType,
- ProviderID: providerId,
- Data: result.Values,
- }
- }
- // type alias requested result to allocated result, as you can only request a full GPU
- type GPUsRequestedResult = GPUsAllocatedResult
- func DecodeGPUsRequestedResult(result *QueryResult) *GPUsRequestedResult {
- return DecodeGPUsAllocatedResult(result)
- }
- type GPUsAllocatedResult struct {
- Cluster string
- Namespace string
- Pod string
- Container string
- Data []*util.Vector
- }
- func DecodeGPUsAllocatedResult(result *QueryResult) *GPUsAllocatedResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- pod, _ := result.GetPod()
- container, _ := result.GetContainer()
- return &GPUsAllocatedResult{
- Cluster: cluster,
- Namespace: namespace,
- Pod: pod,
- Container: container,
- Data: result.Values,
- }
- }
- type GPUsUsageAvgResult struct {
- Cluster string
- Namespace string
- Pod string
- Container string
- Data []*util.Vector
- }
- func DecodeGPUsUsageAvgResult(result *QueryResult) *GPUsUsageAvgResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- pod, _ := result.GetPod()
- container, _ := result.GetContainer()
- return &GPUsUsageAvgResult{
- Cluster: cluster,
- Namespace: namespace,
- Pod: pod,
- Container: container,
- Data: result.Values,
- }
- }
- type GPUsUsageMaxResult struct {
- Cluster string
- Namespace string
- Pod string
- Container string
- Data []*util.Vector
- }
- func DecodeGPUsUsageMaxResult(result *QueryResult) *GPUsUsageMaxResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- pod, _ := result.GetPod()
- container, _ := result.GetContainer()
- return &GPUsUsageMaxResult{
- Cluster: cluster,
- Namespace: namespace,
- Pod: pod,
- Container: container,
- Data: result.Values,
- }
- }
- type NodeGPUPricePerHrResult struct {
- Cluster string
- Node string
- InstanceType string
- ProviderID string
- Data []*util.Vector
- }
- func DecodeNodeGPUPricePerHrResult(result *QueryResult) *NodeGPUPricePerHrResult {
- cluster, _ := result.GetCluster()
- node, _ := result.GetNode()
- instanceType, _ := result.GetInstanceType()
- providerId, _ := result.GetProviderID()
- return &NodeGPUPricePerHrResult{
- Cluster: cluster,
- Node: node,
- InstanceType: instanceType,
- ProviderID: providerId,
- Data: result.Values,
- }
- }
- type GPUInfoResult struct {
- Cluster string
- Namespace string
- Pod string
- Container string
- Device string
- ModelName string
- UUID string
- Data []*util.Vector
- }
- func DecodeGPUInfoResult(result *QueryResult) *GPUInfoResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- pod, _ := result.GetPod()
- container, _ := result.GetContainer()
- device, _ := result.GetString(DeviceLabel)
- modelName, _ := result.GetString(ModelNameLabel)
- uuid, _ := result.GetString(UUIDLabel)
- return &GPUInfoResult{
- Cluster: cluster,
- Namespace: namespace,
- Pod: pod,
- Container: container,
- Device: device,
- ModelName: modelName,
- UUID: uuid,
- Data: result.Values,
- }
- }
- type IsGPUSharedResult struct {
- Cluster string
- Namespace string
- Pod string
- Container string
- Resource string
- Data []*util.Vector
- }
- func DecodeIsGPUSharedResult(result *QueryResult) *IsGPUSharedResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- pod, _ := result.GetPod()
- container, _ := result.GetContainer()
- resource, _ := result.GetString(ResourceLabel)
- return &IsGPUSharedResult{
- Cluster: cluster,
- Namespace: namespace,
- Pod: pod,
- Container: container,
- Resource: resource,
- Data: result.Values,
- }
- }
- type PodPVCAllocationResult struct {
- Cluster string
- Namespace string
- Pod string
- PersistentVolume string
- PersistentVolumeClaim string
- Data []*util.Vector
- }
- func DecodePodPVCAllocationResult(result *QueryResult) *PodPVCAllocationResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- pod, _ := result.GetPod()
- pv, _ := result.GetString(PVLabel)
- pvc, _ := result.GetString(PVCLabel)
- return &PodPVCAllocationResult{
- Cluster: cluster,
- Namespace: namespace,
- Pod: pod,
- PersistentVolume: pv,
- PersistentVolumeClaim: pvc,
- Data: result.Values,
- }
- }
- type PVCBytesRequestedResult struct {
- Cluster string
- Namespace string
- PersistentVolumeClaim string
- Data []*util.Vector
- }
- func DecodePVCBytesRequestedResult(result *QueryResult) *PVCBytesRequestedResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- pvc, _ := result.GetString(PVCLabel)
- return &PVCBytesRequestedResult{
- Cluster: cluster,
- Namespace: namespace,
- PersistentVolumeClaim: pvc,
- Data: result.Values,
- }
- }
- type PVCInfoResult struct {
- Cluster string
- Namespace string
- VolumeName string
- PersistentVolumeClaim string
- StorageClass string
- Data []*util.Vector
- }
- func DecodePVCInfoResult(result *QueryResult) *PVCInfoResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- volumeName, _ := result.GetString(VolumeNameLabel)
- pvc, _ := result.GetString(PVCLabel)
- storageClass, _ := result.GetString(StorageClassLabel)
- return &PVCInfoResult{
- Cluster: cluster,
- Namespace: namespace,
- VolumeName: volumeName,
- PersistentVolumeClaim: pvc,
- StorageClass: storageClass,
- Data: result.Values,
- }
- }
- type PVBytesResult struct {
- Cluster string
- PersistentVolume string
- Data []*util.Vector
- }
- func DecodePVBytesResult(result *QueryResult) *PVBytesResult {
- cluster, _ := result.GetCluster()
- pv, _ := result.GetString(PVLabel)
- return &PVBytesResult{
- Cluster: cluster,
- PersistentVolume: pv,
- Data: result.Values,
- }
- }
- type PVPricePerGiBHourResult struct {
- Cluster string
- VolumeName string
- PersistentVolume string
- ProviderID string
- Data []*util.Vector
- }
- func DecodePVPricePerGiBHourResult(result *QueryResult) *PVPricePerGiBHourResult {
- cluster, _ := result.GetCluster()
- volumeName, _ := result.GetString(VolumeNameLabel)
- pv, _ := result.GetString(PVLabel)
- providerId, _ := result.GetProviderID()
- return &PVPricePerGiBHourResult{
- Cluster: cluster,
- VolumeName: volumeName,
- PersistentVolume: pv,
- ProviderID: providerId,
- Data: result.Values,
- }
- }
- type PVInfoResult struct {
- Cluster string
- PersistentVolume string
- StorageClass string
- ProviderID string
- Data []*util.Vector
- }
- func DecodePVInfoResult(result *QueryResult) *PVInfoResult {
- cluster, _ := result.GetCluster()
- storageClass, _ := result.GetString(StorageClassLabel)
- providerId, _ := result.GetProviderID()
- pv, _ := result.GetString(PVLabel)
- return &PVInfoResult{
- Cluster: cluster,
- PersistentVolume: pv,
- StorageClass: storageClass,
- ProviderID: providerId,
- Data: result.Values,
- }
- }
- // Base type for network usage results
- type NetworkGiBResult struct {
- Cluster string
- Namespace string
- Pod string
- Service string
- Data []*util.Vector
- }
- func DecodeNetworkGiBResult(result *QueryResult) *NetworkGiBResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- pod, _ := result.GetPod()
- service, _ := result.GetString(ServiceLabel)
- return &NetworkGiBResult{
- Cluster: cluster,
- Namespace: namespace,
- Pod: pod,
- Service: service,
- Data: result.Values,
- }
- }
- // Base type for network price results
- type NetworkPricePerGiBResult struct {
- Cluster string
- Data []*util.Vector
- }
- func DecodeNetworkPricePerGiBResult(result *QueryResult) *NetworkPricePerGiBResult {
- cluster, _ := result.GetCluster()
- return &NetworkPricePerGiBResult{
- Cluster: cluster,
- Data: result.Values,
- }
- }
- // Type alias the specific network subclassification results AND price results
- type NetZoneGiBResult = NetworkGiBResult
- type NetZonePricePerGiBResult = NetworkPricePerGiBResult
- type NetRegionGiBResult = NetworkGiBResult
- type NetRegionPricePerGiBResult = NetworkPricePerGiBResult
- type NetInternetGiBResult = NetworkGiBResult
- type NetInternetPricePerGiBResult = NetworkPricePerGiBResult
- type NetInternetServiceGiBResult = NetworkGiBResult
- type NetZoneIngressGiBResult = NetworkGiBResult
- type NetRegionIngressGiBResult = NetworkGiBResult
- type NetInternetIngressGiBResult = NetworkGiBResult
- type NetInternetServiceIngressGiBResult = NetworkGiBResult
- func DecodeNetZoneGiBResult(result *QueryResult) *NetZoneGiBResult {
- return DecodeNetworkGiBResult(result)
- }
- func DecodeNetZonePricePerGiBResult(result *QueryResult) *NetZonePricePerGiBResult {
- return DecodeNetworkPricePerGiBResult(result)
- }
- func DecodeNetRegionGiBResult(result *QueryResult) *NetRegionGiBResult {
- return DecodeNetworkGiBResult(result)
- }
- func DecodeNetRegionPricePerGiBResult(result *QueryResult) *NetRegionPricePerGiBResult {
- return DecodeNetworkPricePerGiBResult(result)
- }
- func DecodeNetInternetGiBResult(result *QueryResult) *NetInternetGiBResult {
- return DecodeNetworkGiBResult(result)
- }
- func DecodeNetInternetPricePerGiBResult(result *QueryResult) *NetInternetPricePerGiBResult {
- return DecodeNetworkPricePerGiBResult(result)
- }
- func DecodeNetInternetServiceGiBResult(result *QueryResult) *NetInternetServiceGiBResult {
- return DecodeNetworkGiBResult(result)
- }
- func DecodeNetZoneIngressGiBResult(result *QueryResult) *NetZoneIngressGiBResult {
- return DecodeNetworkGiBResult(result)
- }
- func DecodeNetRegionIngressGiBResult(result *QueryResult) *NetRegionIngressGiBResult {
- return DecodeNetworkGiBResult(result)
- }
- func DecodeNetInternetIngressGiBResult(result *QueryResult) *NetInternetIngressGiBResult {
- return DecodeNetworkGiBResult(result)
- }
- func DecodeNetInternetServiceIngressGiBResult(result *QueryResult) *NetInternetServiceIngressGiBResult {
- return DecodeNetworkGiBResult(result)
- }
- type NetReceiveBytesResult struct {
- Cluster string
- Namespace string
- Pod string
- Container string
- Data []*util.Vector
- }
- func DecodeNetReceiveBytesResult(result *QueryResult) *NetReceiveBytesResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- pod, _ := result.GetPod()
- container, _ := result.GetContainer()
- return &NetReceiveBytesResult{
- Cluster: cluster,
- Namespace: namespace,
- Pod: pod,
- Container: container,
- Data: result.Values,
- }
- }
- type NetTransferBytesResult struct {
- Cluster string
- Namespace string
- Pod string
- Container string
- Data []*util.Vector
- }
- func DecodeNetTransferBytesResult(result *QueryResult) *NetTransferBytesResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- pod, _ := result.GetPod()
- container, _ := result.GetContainer()
- return &NetTransferBytesResult{
- Cluster: cluster,
- Namespace: namespace,
- Pod: pod,
- Container: container,
- Data: result.Values,
- }
- }
- type NamespaceAnnotationsResult struct {
- Cluster string
- Namespace string
- Annotations map[string]string
- Data []*util.Vector
- }
- func DecodeNamespaceAnnotationsResult(result *QueryResult) *NamespaceAnnotationsResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- annotations := result.GetAnnotations()
- return &NamespaceAnnotationsResult{
- Cluster: cluster,
- Namespace: namespace,
- Annotations: annotations,
- Data: result.Values,
- }
- }
- type PodAnnotationsResult struct {
- Cluster string
- Namespace string
- Pod string
- Annotations map[string]string
- Data []*util.Vector
- }
- func DecodePodAnnotationsResult(result *QueryResult) *PodAnnotationsResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- pod, _ := result.GetPod()
- annotations := result.GetAnnotations()
- return &PodAnnotationsResult{
- Cluster: cluster,
- Namespace: namespace,
- Pod: pod,
- Annotations: annotations,
- Data: result.Values,
- }
- }
- type NodeLabelsResult struct {
- Cluster string
- Node string
- Labels map[string]string
- Data []*util.Vector
- }
- func DecodeNodeLabelsResult(result *QueryResult) *NodeLabelsResult {
- cluster, _ := result.GetCluster()
- node, _ := result.GetNode()
- labels := result.GetLabels()
- return &NodeLabelsResult{
- Cluster: cluster,
- Node: node,
- Labels: labels,
- Data: result.Values,
- }
- }
- type NamespaceLabelsResult struct {
- Cluster string
- Namespace string
- Labels map[string]string
- Data []*util.Vector
- }
- func DecodeNamespaceLabelsResult(result *QueryResult) *NamespaceLabelsResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- labels := result.GetLabels()
- return &NamespaceLabelsResult{
- Cluster: cluster,
- Namespace: namespace,
- Labels: labels,
- Data: result.Values,
- }
- }
- type PodLabelsResult struct {
- Cluster string
- Namespace string
- Pod string
- Labels map[string]string
- Data []*util.Vector
- }
- func DecodePodLabelsResult(result *QueryResult) *PodLabelsResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- pod, _ := result.GetPod()
- labels := result.GetLabels()
- return &PodLabelsResult{
- Cluster: cluster,
- Namespace: namespace,
- Pod: pod,
- Labels: labels,
- Data: result.Values,
- }
- }
- type ServiceLabelsResult struct {
- Cluster string
- Namespace string
- Service string
- Labels map[string]string
- Data []*util.Vector
- }
- func DecodeServiceLabelsResult(result *QueryResult) *ServiceLabelsResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- service, _ := result.GetString(ServiceLabel)
- labels := result.GetLabels()
- return &ServiceLabelsResult{
- Cluster: cluster,
- Namespace: namespace,
- Service: service,
- Labels: labels,
- Data: result.Values,
- }
- }
- type DeploymentLabelsResult struct {
- Cluster string
- Namespace string
- Deployment string
- Labels map[string]string
- Data []*util.Vector
- }
- func DecodeDeploymentLabelsResult(result *QueryResult) *DeploymentLabelsResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- deployment, _ := result.GetString(DeploymentLabel)
- labels := result.GetLabels()
- return &DeploymentLabelsResult{
- Cluster: cluster,
- Namespace: namespace,
- Deployment: deployment,
- Labels: labels,
- Data: result.Values,
- }
- }
- type StatefulSetLabelsResult struct {
- Cluster string
- Namespace string
- StatefulSet string
- Labels map[string]string
- Data []*util.Vector
- }
- func DecodeStatefulSetLabelsResult(result *QueryResult) *StatefulSetLabelsResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- statefulSet, _ := result.GetString(StatefulSetLabel)
- labels := result.GetLabels()
- return &StatefulSetLabelsResult{
- Cluster: cluster,
- Namespace: namespace,
- StatefulSet: statefulSet,
- Labels: labels,
- Data: result.Values,
- }
- }
- type DaemonSetLabelsResult struct {
- Cluster string
- Namespace string
- Pod string
- DaemonSet string
- Labels map[string]string
- Data []*util.Vector
- }
- func DecodeDaemonSetLabelsResult(result *QueryResult) *DaemonSetLabelsResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- pod, _ := result.GetPod()
- daemonSet, _ := result.GetString(OwnerNameLabel)
- labels := result.GetLabels()
- return &DaemonSetLabelsResult{
- Cluster: cluster,
- Namespace: namespace,
- Pod: pod,
- DaemonSet: daemonSet,
- Labels: labels,
- Data: result.Values,
- }
- }
- type JobLabelsResult struct {
- Cluster string
- Namespace string
- Pod string
- Job string
- Labels map[string]string
- Data []*util.Vector
- }
- func DecodeJobLabelsResult(result *QueryResult) *JobLabelsResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- pod, _ := result.GetPod()
- job, _ := result.GetString(OwnerNameLabel)
- labels := result.GetLabels()
- return &JobLabelsResult{
- Cluster: cluster,
- Namespace: namespace,
- Pod: pod,
- Job: job,
- Labels: labels,
- Data: result.Values,
- }
- }
- type PodsWithReplicaSetOwnerResult struct {
- Cluster string
- Namespace string
- Pod string
- ReplicaSet string
- Data []*util.Vector
- }
- func DecodePodsWithReplicaSetOwnerResult(result *QueryResult) *PodsWithReplicaSetOwnerResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- replicaSet, _ := result.GetString(OwnerNameLabel)
- pod, _ := result.GetPod()
- return &PodsWithReplicaSetOwnerResult{
- Cluster: cluster,
- Namespace: namespace,
- Pod: pod,
- ReplicaSet: replicaSet,
- Data: result.Values,
- }
- }
- type ReplicaSetsWithoutOwnersResult struct {
- Cluster string
- Namespace string
- ReplicaSet string
- Data []*util.Vector
- }
- func DecodeReplicaSetsWithoutOwnersResult(result *QueryResult) *ReplicaSetsWithoutOwnersResult {
- return &ReplicaSetsWithoutOwnersResult{
- Data: result.Values,
- }
- }
- type ReplicaSetsWithRolloutResult struct {
- Cluster string
- Namespace string
- ReplicaSet string
- OwnerName string
- OwnerKind string
- Data []*util.Vector
- }
- func DecodeReplicaSetsWithRolloutResult(result *QueryResult) *ReplicaSetsWithRolloutResult {
- cluster, _ := result.GetCluster()
- namespace, _ := result.GetNamespace()
- replicaSet, _ := result.GetString(ReplicaSetLabel)
- ownerName, _ := result.GetString(OwnerNameLabel)
- ownerKind, _ := result.GetString(OwnerKindLabel)
- return &ReplicaSetsWithRolloutResult{
- Cluster: cluster,
- Namespace: namespace,
- ReplicaSet: replicaSet,
- OwnerName: ownerName,
- OwnerKind: ownerKind,
- Data: result.Values,
- }
- }
- func DecodeAll[T any](results []*QueryResult, decode ResultDecoder[T]) []*T {
- decoded := make([]*T, 0, len(results))
- for _, result := range results {
- decoded = append(decoded, decode(result))
- }
- return decoded
- }
|