Analyze costs using API

The Domino FinOps API allow aggregation only by labels of Domino domain objects, not by arbitrary Kubernetes objects like clusters.

Access FinOps through Domino Cost API

Use the Domino Cost API to access FinOps features.

Note
Only SysAdmins can use the /allocation and /asset API paths.

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/v1/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/v1/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/v1/allocation -d window=today -d aggregate=label:dominodatalab.com/project-id -G

Today’s cost aggregated by billing tag

curl -H "X-Domino-Api-Key: $API_KEY" -H "Accept: application/json" https://$DOMAIN/api/cost/v1/allocation -d window=today -d aggregate=label:dominodatalab.com/billing-tag -G

API schema

There are a number of field options available with FinOps APIs. The window query parameter is required. For details on the window values you can use, please check FinOps’s window documentation.

FieldDescription

name

Name of each relevant Kubernetes concept described by the allocation, delimited by slashes, e.g. cluster/node/namespace/pod/container.

properties

Map of name-to-value for all relevant property fields, including cluster, node, namespace, controller, controllerKind, pod, container, labels, annotation, etc. Note: Prometheus only supports underscores (_) in label names. Dashes (-) and dots (.), while supported by Kubernetes, will be translated to underscores by Prometheus. This may cause the merging of labels, which could result in aggregated costs being charged to a single label.

window

Period of time over which the allocation is defined.

start

Precise starting time of the allocation. By definition must be within the window.

end

Precise ending time of the allocation. By definition must be within the window.

minutes

Number of minutes running; i.e. the minutes from start until end.

totalCost

Total cumulative cost.

rawAllocationOnly

Object with fields cpuCoreUsageMax and ramByteUsageMax, which are the maximum usages in the window for the Allocation. If the Allocation query is aggregated or accumulated, this object will be null because the meaning of maximum is ambiguous in these situations. Consider aggregating by namespace: should the maximum be the maximum of each Allocation individually, or the maximum combined usage of all Allocations (at any point in time in the window) in the namespace?

Note
The trial version of Domino FinOps only supports up to 90 days of data storage. To use a window parameter of more than 90 days (90d), contact your Domino representative.

Next steps

See other ways Domino FinOps can help you optimize the performance of your projects while managing cloud expenditures: