First, in the Kubecost UI, view the price of a single node for a single day.
Next, compare this instance's costs with what is found in AWS Cost Explorer (Amortized). The most accessible way of doing so is Group by -> Resource, and Filters -> Resource -> i-033b92ecd18376946.
If unable to Group by -> Resource (because it requires enabling hourly/resource granularity in Cost Explorer), try Group by -> Tag -> aws:eks:cluster-name, and Filters -> Tag -> aws:eks:cluster-name -> kc-demo-prod. This will compare the cost of a cluster in AWS Cost Explorer, versus the cost of a cluster in Kubecost.
Note: When grouping by cluster, AWS Cost Explorer only accounts for the Node and Network costs, not the ClusterManagement/ControlPlane, Disks, or LoadBalancer costs. Also keep in mind this method will also be less exact than comparing a specific node between Kubecost and AWS Cost Explorer.
To determine what could cause a discrepancy between your instances' cost and AWS Cost Explorer, perform these troubleshooting measures:
Investigate Prometheus to see if the underlying metrics about the node are sporadic or missing.
Cost Explorer CSV export for one day filtered by account and service in AWS. Compare that to the Kubecost /model/asset
API request for the same day.
Set up CUR to export as CSV file. Investigate to see whether the costs in the CSV file match with what is displayed on the Kubecost Assets page.
Test Athena queries.
When configuring the Cloud Billing Integration, Kubecost is able to reconcile its predictions (which leverage public pricing APIs) with actual billing data to improve accuracy. After Kubecost ingests and reconciles against your cloud billing data, it's able to provide 95%+ accuracy for Kubernetes costs, and 99%+ accuracy for out-of-cluster costs.
This doc provides guidance on how to validate the prices in Kubecost match that of your cloud provider's cost management dashboard.
Before comparing costs between Kubecost and your cloud provider's cost management dashboard, ensure your Kubecost deployment has configured Cloud Billing Integrations.
Auditing Kubecost data is most effective when targeting small ranges of time. In this doc, the primary goal is to ensure the price of a single node for a single day is correct. Then, there is more confidence when comparing with a window of 7 days. Or when comparing cost of the entire cluster. Or when aggregating costs by account or label.
Also, keep in mind that it typically takes ~24-48hrs for cloud providers to provide new billing data, then for Kubecost to ingest this new data and reconcile its predictions against the billing data.
Go to the Assets page, then select Aggregate By > Single Aggregation > Service.
Audits are most effective when targeting small ranges of time. Select a Start and End Date which covers a window of 1 day, and is beyond 48 hours ago. Also select a date that has reconciled with the AWS Cost and Usage Report (CUR). CUR data can be delayed up to 24 hours.
Select the Kubernetes service from the table underneath the NAME column, then select Node. You should arrive at a page like this (if your information is displayed in a bar graph, you can change the display by selecting Edit, then Entire Window under the Resolution dropdown):
Select any node to view its details.
For more configuration options, visit the Assets API doc.
First, in the Kubecost UI, . Note, that Kubecost breaks out each VM within a Virtual Machine Scale Set (VMSS) as its own line item.
Next, compare this node's costs with what is found in Azure Cost Management (Amortized). Ensure you adjust the date range, and filter for the VMSS.
To determine what could cause a discrepancy between your instances' cost and Azure Cost Management, perform these troubleshooting measures:
Check whether the CSV line items in the Azure Cost Export match the Azure Cost Management Dashboard.
Check whether Kubecost's price of a single node for a single day matches with the Azure Cost Export CSV file. The CSV will be located in the bucket configured for .
Check whether the Azure Cost Export is .