Datadog Cloud Cost Management (CCM) automatically allocates the costs of your cloud clusters to individual services and workloads running in those clusters. Use cost metrics enriched with tags from pods, nodes, containers, and tasks to visualize container workload cost in the context of your entire cloud bill.
Clouds
CCM allocates costs of your AWS, Azure, or Google host instances. A host is a computer (such as an EC2 instance in AWS, a virtual machine in Azure, or a Compute Engine instance in Google Cloud) that is listed in your cloud provider’s cost and usage report and may be running Kubernetes pods.
Resources
CCM allocates costs for Kubernetes clusters and includes cost analysis for many associated resources such as Kubernetes persistent volumes used by your pods.
CCM displays costs for resources including CPU, memory, and more depending on the cloud and orchestrator you are using on the Containers page.
For Kubernetes support, install the Datadog Agent in a Kubernetes environment and ensure that you enable the Orchestrator Explorer in your Agent configuration.
Cost allocation divides host compute and other resource costs from your cloud provider into individual tasks or pods associated with them. These divided costs are then enriched with tags from related resources so you can break down costs by any associated dimensions.
Use the allocated_resource tag to visualize the spend resource associated with your costs at various levels, including the Kubernetes node, container orchestration host, storage volume, or entire cluster level.
These divided costs are enriched with tags from nodes, pods, tasks, and volumes. You can use these tags to break down costs by any associated dimensions.
For Kubernetes compute allocation, a Kubernetes node is joined with its associated host instance costs. The node’s cluster name and all node tags are added to the entire compute cost for the node. This allows you to associate cluster-level dimensions with the cost of the instance, without considering the pods scheduled to the node.
For Kubernetes Persistent Volume storage allocation, Persistent Volumes (PV), Persistent Volume Claims (PVC), nodes, and pods are joined with their associated EBS volume costs. All associated PV, PVC, node, and pod tags are added to the EBS volume cost line items.
Next, Datadog looks at all of the pods that claimed the volume on that day. The cost of the volume is allocated to a pod based on the resources it used and the length of time it ran. These resources include the provisioned capacity for storage, IOPS, and throughput. This allocated cost is enriched with all of the pod’s tags.
ECS tasks that run on Fargate are already fully allocated in the CUR. CCM enriches that data by adding out-of-the-box tags and container tags to the AWS Fargate cost.
For Kubernetes compute allocation, a Kubernetes node is joined with its associated host instance costs. The node’s cluster name and all node tags are added to the entire compute cost for the node. This allows you to associate cluster-level dimensions with the cost of the instance, without considering the pods scheduled to the node.
For Kubernetes compute allocation, a Kubernetes node is joined with its associated host instance costs. The node’s cluster name and all node tags are added to the entire compute cost for the node. This allows you to associate cluster-level dimensions with the cost of the instance, without considering the pods scheduled to the node.
To view the costs of GKE clusters without enabling Datadog Infrastructure Monitoring, use GKE cost allocation. Enable GKE cost allocation on unmonitored GKE clusters to access this feature set.
Use the allocated_spend_type tag to visualize the spend category associated with your costs at various levels, including the Kubernetes node, container orchestration host, storage volume, or entire cluster level.
The cost of a host instance is split into two components: 60% for the CPU and 40% for the memory. Each component is allocated to individual workloads based on their resource reservations and usage.
Costs are allocated into the following spend types:
Spend type
説明
使用方法
Cost of resources (such as memory and CPU) used by workloads, based on the average usage on that day.
Workload idle
Cost of resources (such as memory and CPU) that are reserved and allocated but not used by workloads. This is the difference between the total resources requested and the average usage.
Cluster idle
Cost of resources (such as memory and CPU) that are not reserved by workloads in a cluster. This is the difference between the total cost of the resources and what is allocated to workloads.
The cost of an AWS EBS volume has three components: IOPS, throughput, and storage. Each is allocated according to a pod’s usage when the volume is mounted.
Spend type
説明
使用方法
Cost of provisioned IOPS, throughput, or storage used by workloads. Storage cost is based on the maximum amount of volume storage used that day, while IOPS and throughput costs are based on the average amount of volume storage used that day.
Workload idle
Cost of provisioned IOPS, throughput, or storage that are reserved and allocated but not used by workloads. Storage cost is based on the maximum amount of volume storage used that day, while IOPS and throughput costs are based on the average amount of volume storage used that day. This is the difference between the total resources requested and the average usage. Note: This tag is only available if you have enabled Resource Collection in your AWS Integration. To prevent being charged for Cloud Security Posture Management, ensure that during the Resource Collection setup, the Cloud Security Posture Management box is unchecked.
Cluster idle
Cost of provisioned IOPS, throughput, or storage that are not reserved by any pods that day. This is the difference between the total cost of the resources and what is allocated to workloads.
Note: Persistent volume allocation is only supported in Kubernetes clusters, and is only available for pods that are part of a Kubernetes StatefulSet.
The cost of a host instance is split into two components: 60% for the CPU and 40% for the memory. Each component is allocated to individual workloads based on their resource reservations and usage.
Costs are allocated into the following spend types:
Spend type
説明
使用方法
Cost of resources (such as memory and CPU) used by workloads, based on the average usage on that day.
Workload idle
Cost of resources (such as memory and CPU) that are reserved and allocated but not used by workloads. This is the difference between the total resources requested and the average usage.
Cluster idle
Cost of resources (such as memory and CPU) that are not reserved by workloads in a cluster. This is the difference between the total cost of the resources and what is allocated to workloads.
The cost of a host instance is split into two components: 60% for the CPU and 40% for the memory. Each component is allocated to individual workloads based on their resource reservations and usage.
Costs are allocated into the following spend types:
Spend type
説明
使用方法
Cost of resources (such as memory and CPU) used by workloads, based on the average usage on that day.
Workload idle
Cost of resources (such as memory and CPU) that are reserved and allocated but not used by workloads. This is the difference between the total resources requested and the average usage.
Cluster idle
Cost of resources (such as memory and CPU) that are not reserved by workloads in a cluster. This is the difference between the total cost of the resources and what is allocated to workloads.
Not monitored
Cost of resources where the spend type is unknown. To resolve this, install the Datadog Agent on these clusters or nodes.
Depending on the cloud provider, certain resources may or may not be available for cost allocation.
Resource
AWS
Azure
Google Cloud
CPU
メモリ
Persistent volumes
Storage resources within a cluster, provisioned by administrators or dynamically, that persist data independently of pod lifecycles.
Managed service fees
Cost of associated fees charged by the cloud provider for managing the cluster, such as fees for managed Kubernetes services or other container orchestration options.
ECS costs
N/A
N/A
Networking costs
Limited*
Limited*
GPU
Limited*
Local storage
Directly-attached storage resources for a node.
Limited*
Limited*
Limited* resources have been identified as part of your Kubernetes spend, but are not fully allocated to specific workloads or pods. These resources are host-level costs, not pod or namespace-level costs, and are identified with allocated_spend_type:<resource>_not_supported.
EC2 costs allocated by the CPU & memory used by a pod or ECS task, using a 60:40 split for CPU & memory respectively. Also includes allocated EBS costs. Based on aws.cost.amortized
aws.cost.net.amortized.shared.resources.allocated
Net EC2 costs allocated by CPU & memory used by a pod or ECS task, using a 60:40 split for CPU & memory respectively. Also includes allocated AWS EBS costs. Based on aws.cost.net.amortized, if available
Cost Metric
説明
azure.cost.amortized.shared.resources.allocated
Azure VM costs allocated by the CPU & memory used by a pod or container task, using a 60:40 split for CPU & memory respectively. Also includes allocated Azure costs. Based on azure.cost.amortized
Cost Metric
説明
gcp.cost.amortized.shared.resources.allocated
Google Compute Engine costs allocated by the CPU & memory used by a pod, using 60:40 split for CPU & memory respectively. This allocation method is used when the bill does not already provide a specific split between CPU and memory usage. Based on gcp.cost.amortized
These cost metrics include all of your cloud costs. This allows you to continue visualizing all of your cloud costs at one time.
For example, say you have the tag team on a storage bucket, a cloud provider managed database, and Kubernetes pods. You can use these metrics to group costs by team, which includes the costs for all three.
In addition to Kubernetes pod and Kubernetes node tags, the following non-exhaustive list of out-of-the-box tags are applied to cost metrics:
すぐに使えるタグ
説明
orchestrator:kubernetes
The orchestration platform associated with the item is Kubernetes.
kube_cluster_name
Kubernetes クラスターの名前。
kube_namespace
The namespace where workloads are running.
kube_deployment
The name of the Kubernetes Deployment.
kube_stateful_set
The name of the Kubernetes StatefulSet.
pod_name
The name of any individual pod.
Conflicts are resolved by favoring higher-specificity tags such as pod tags over lower-specificity tags such as host tags. For example, a Kubernetes pod tagged service:datadog-agent running on a node tagged service:aws-node results in a final tag service:datadog-agent.
In addition to Kubernetes pod and Kubernetes node tags, the following non-exhaustive list of out-of-the-box tags are applied to cost metrics:
すぐに使えるタグ
説明
orchestrator:kubernetes
The orchestration platform associated with the item is Kubernetes.
kube_cluster_name
Kubernetes クラスターの名前。
kube_namespace
The namespace where workloads are running.
kube_deployment
The name of the Kubernetes Deployment.
kube_stateful_set
The name of the Kubernetes StatefulSet.
pod_name
The name of any individual pod.
allocated_spend_type:not_monitored
The tracking and allocation of Agentless Kubernetes costs associated with resources used by Google Cloud services or workloads, and the Datadog Agent is not monitoring those resources.
allocated_resource:data_transfer
The tracking and allocation of costs associated with data transfer activities used by Google Cloud services or workloads.
allocated_resource:gpu
The tracking and allocation of costs at a host level associated with GPU resources used by Google Cloud services or workloads.
allocated_resource:local_storage
The tracking and allocation of costs at a host level associated with local storage resources used by Google Cloud services or workloads.