Cost governance helps you monitor and control cloud infrastructure costs. Admins can aggregate costs by user, projects, organization, and hardware tiers to accurately allocate costs and set proactive budgets to control spending.
Domino directly integrates with cloud provider billing APIs so you can be confident that the costs you see in Domino represent your actual cloud bills, including any discounts or special agreements you may have.
An administrator must complete the following steps to set up cost governance.
Configure cloud billing integration
To get the most accurate cost information from your cloud provider, configure Kubecost cloud billing integration. For detailed steps, see the Kubecost docs for your provider:
Configure long-term storage for Kubecost enterprise
To retain more than 15 days of data, you need a Kubecost Enterprise license. To upgrade to Kubecost Enterprise, contact your Domino representative.
To store long-term data, you must also configure a Kubecost-federated storage bucket to store the data. Configure your storage bucket before upgrading to Kubecost Enterprise, as Domino’s integration with Kubecost requires long-term storage to be configured first.
-
In your Domino cluster, create a new file called
federated-store.yaml
. -
Format the contents of the file according to the Kubecost specifications for each cloud provider.
-
Add a secret using
federated-store.yaml
:kubectl create secret generic <secret_name> -n kubecost --from-file=federated-store.yaml
-
Set
.Values.kubecostModel.federatedStorageConfigSecret
to the Kubernetes secret name.
For more information on Kubecost Federated ETL, see Kubecost’s Federated ETL guide.
You can deploy an App in Domino to create a cost-reporting dashboard. See the Domino Cost App repository for a breakdown of the different costs that you may have, and follow the instructions in the README to deploy the App in your Domino Project.
Use the Domino Cost API to access cost governance features.
Cost API samples
To obtain the Domino API key, go to Account Settings > API Key.
Today’s cost aggregated by cluster
curl -H "X-Domino-Api-Key: $API_KEY" -H "Accept: application/json" https://$DOMAIN/api/cost/allocation -d window=today -d aggregate=cluster -G
Today’s cost aggregated by organization
curl -H "X-Domino-Api-Key: $API_KEY" -H "Accept: application/json" https://$DOMAIN/api/cost/allocation -d window=today -d aggregate=label:dominodatalab.com/organization-name -G
Today’s cost aggregated by Project
curl -H "X-Domino-Api-Key: $API_KEY" -H "Accept: application/json" https://$DOMAIN/api/cost/allocation -d window=today -d aggregate=label:dominodatalab.com/project-id -G
The window
query parameter is required. For more details on possible window
values, see https://docs.kubecost.com/apis/apis-overview/assets-api#using-window-parameter
Set budgets to control costs for organizations and Projects.
Configure cloud billing integration
To get the most accurate cost information from your cloud provider, configure Kubecost cloud billing integration. For detailed steps, see the Kubecost docs for your provider:
Configure long-term storage for Kubecost enterprise
To retain more than 15 days of data, you need a Kubecost Enterprise license. To upgrade to Kubecost Enterprise, contact your Domino representative.
To store long-term data, you must also configure a Kubecost federated storage bucket to store the data. Configure your storage bucket before upgrading to Kubecost Enterprise, as Domino’s integration with Kubecost requires long-term storage to be configured.
-
In your Domino cluster, create a new file called
federated-store.yaml
. -
Format the contents of the file according to the Kubecost specifications for each cloud provider.
-
Add a secret using
federated-store.yaml
:kubectl create secret generic <secret_name> -n kubecost --from-file=federated-store.yaml
-
Set
.Values.kubecostModel.federatedStorageConfigSecret
to the Kubernetes secret name.
For more information on Kubecost Federated ETL, see Kubecost’s Federated ETL guide.
You can deploy an app in Domino to create a cost reporting dashboard. See the Domino Cost App repository for an overview and breakdown of the different costs that you may have. Follow the instructions in the README to deploy the app in your own Domino project.
Set budgets to control costs for organizations and projects. To enable budgets:
-
Go to Admin > Advanced > Feature Flags.
-
Enable the feature flag
ShortLived.EnableCostBudgetsAndAlerts
.
To set a budget, go to Admin > Advanced > Cost Budgets and Alerts.
By default, all Projects and organizations have no limit.
To set a default limit that applies to all organizations, specify a value for Org ($k) under Default Limits (per month). The same pattern applies to Projects.
To change the default budget limit for a specific organization or Project, specify it in the Budget Overrides section.
Set up alerts to notify stakeholders that an organization or Project crossed budgetary thresholds. Alert settings are shared across all Projects and organizations and appear as both a Domino notification and email. To send an email alert, you must configure your email by going to Advanced > Email Settings.
By default, no alerts are set. To enable alerts, go to Alert Settings and select Alert on 75% and 100% of budget thresholds.
If 100% of a budget is reached, Domino sends daily notifications.
This section describes the limitations of Kubecost on Domino.
Learn how to save on storage costs by setting dataset limits and quotas.