Useful Kubecost Integration Information for OpenCost

The following sections describes the information that is useful for you when integrating with Kubecost:

CBI Mapping
Repositories

CBI Mapping

The following table lists the CBI mapping automatically from the CSV column to cost dimensions/measures:

CSV Column

Dimensions/Measures

Required

Meaning

Cluster

Cloud Vendor Account
Cloud Vendor Account Name

Yes

Kubernetes cluster name.

Namespace

Resource Group

Yes

Kubernetes cluster namespace name.

Aggregation

Resource Type

Yes

Desired aggregation level for cost allocation data to be collected, controlled by an input parameter for the export utility. Supported values are namespace, controller, and pod. Recommended level is pod.

Controller

-

Yes

Controller name. A value is populated if a unique value is available for the used aggregation level.

Pod

-

Yes

Pod ID. A value is populated if a unique value is available for the used aggregation level.

Container

-

Yes

Container name. A value is populated if a unique value is available for the used aggregation level.

Node

-

Yes

Node name. A value is populated if a unique value is available for the used aggregation level.

ResourceID

Resource ID

Yes

Kubernetes resource ID. Based on the aggregation level, the resource ID pattern is as follows:

Aggregation = namespace: ResourceID = <cluster name>/<namespace name>
Aggregation = controller: ResourceID = <cluster name>/<namespace name>/<controller name>
Aggregation = pod: ResourceID = <cluster name>/<namespace name>/<pod ID>

Cost

Cost

Yes

The total cost for this record in the currency specified by Currency.

Currency

Currency Code

Yes

The currency code is defaulted to USD.

UsageType

Usage Type

Yes

Represents the kind of usage incurred. For example, CPU usage, persistent volume usage, and so on. Sample values are cpuCost, ramCost, pvCost.

UsageAmount

Usage Amount

Yes

The amount of usage generated for this record. 

UsageUnit

Usage Unit

Yes

The units that the Usage Amount metric is reported in. Sample values are cpuCoreHours, ramByteHours, pvBytesHours.

ControllerKind

-

Yes

A kind of controller. A value is populated if a unique value is available for the used aggregation level. Sample values are deployment, job, statefulset.

ProviderID

-

Yes

Provider ID for the node. A value is populated when the node is known.

Labels

-

Yes

Kubernetes labels of the resource. Can be used for defining custom dimensions.

InvoiceYearMonth

-

Yes

The month this usage was incurred. For example, 202305.

InvoiceDate

-

Yes

A UTC time in the RFC3339 format (for example, 2006-01-02T15:04:05Z) representing the date and time this usage was incurred.

StartTime

-

Yes

A UTC time in the RFC3339 format (for example, 2006-01-02T15:04:05Z) representing the start date and time for this record.

EndTime

-

Yes

A UTC time in the RFC3339 format (for example, 2006-01-02T15:04:05Z) representing the end date and time for this record.

CloudProvider

Cloud Provider

No

Can be set as the CBI parameter. Default value is Kubecost.

ChargeType

Line Item Type

No

Set to Usage.

UsageCategory

Category

No

Set to Compute.

Service

Service

No

Set to Kubernetes.

BillSource

Bill Source

No

Bill connect Id.

Capability

Capability

No

Set to csm.

Manufacturer

Manufacturer Name

No

Can be set as the CBI parameter. Default value is Kubecost.

SpendType

Spend Type

No

Set to Cloud.

Repositories

The following public repositories contain the source code and the image of the exporter:

Public GitHub Repository
Public Image Registry