This feature imports actual cost data from your cloud providers into Kore, providing visibility to your teams and administrators of the costs incurred by your team workloads.
To enable it, you must add one or more Cost Integrations for each cloud provider you are using.
This can be configured in the UI in Admin > Configure > Costs, selecting the Actual Costs tab. From here, select '+ Add Cost Integration' in the relevant cloud provider and populate the required details.
You can control the frequency of the cost import in the advanced settings - when first setting up your cost integrations it can be useful to set this to a short interval, however this should be left at one hour or greater once you are satisfied it is working, as each import can cause significant data transfer and the cloud providers only publish data every 3-4 hours at most.
AWS cost analysis is only supported at an organizational level. If you are using an AWS organization directly in Kore, this can be used directly. If you are using AWS shared accounts you must add a shared cloud account representing the master AWS account into which your billing data is accrued.
When adding an AWS cost integration, Kore will set up delivery of data into a new S3 bucket using a Cost and Usage Report.
MANUAL STEP REQUIRED: In order for Kore to understand your costs data on AWS, you must manually add the tags 'kore-instance', 'kore-cluster' and 'kore-team' as User-Defined Cost Allocation Tags in your AWS organization. Without this, Kore will not see any cost data for the resources it is managing.
On GCP, when adding a cost integration with an organization, Kore will query for cost data from a BigQuery table you define.
MANUAL STEP REQUIRED: You will need to configure the export of billing data to BigQuery as described in the GCP documentation and configure Kore with the appropriate access to this BigQuery dataset.
The cloud account or organization you choose when configuring the cost integration in Kore must reference a GCP service account which can access this BigQuery dataset in order for the cost integration to work.
If you are using an Azure organization you can import costs for Kore resources in all of the subscriptions within that organization. If you are using Azure shared subscriptions then you can set up separate cost integrations for each subscription.
No manual steps are required after enabling a cost integration for Azure.
Due to limitations in the way Azure tags resources, some elements of Azure Kubernetes Service are not currently represented in the costs data Kore imports, including:
- Azure Kubernetes Service 'Uptime SLA'
- Load balancer network transfer
- Load balancer public IP addresses
We're working with Microsoft to ensure they tag all Azure Kubernetes Service costs correctly, at which time these will be included in Kore's cost reports for your teams and Azure clusters.
If you are not seeing actual cost data you can see the logs for each cost integration on the UI. Open any cost integration and you will see a list of the recent executions of that integration, including whether they succeeded or failed. You can expand any item in this list to see any issues which occurred during that execution.
You can also inspect these logs using
kore get costimport -t kore-admin import-name -o yaml
on the CLI.