Skip to main content

Monitor Unity AI Gateway cost

Beta

This feature is in Beta.

Observe and analyze cost for all Unity AI Gateway traffic by model service, target model, and requesting principal.

Account and workspace admins can view a consolidated overview of AI spend on the AI page in Governance Hub.

note

Cost observability is based on Databricks billing records. For request-level usage analytics such as token counts, latency, requester details, and request tags, see Model usage for Unity AI Gateway services.

Requirements

Attribution

Unity AI Gateway provides cost attribution through the billable usage system table (system.billing.usage).

Unity AI Gateway enriches MODEL_SERVING billing records in system.billing.usage with service-specific metadata, so you can attribute Databricks cost to the associated services, target models, principals, and service tags. For the complete schema and field definitions, see the Billing usage system table reference.

The billable usage system table includes cost attribution for Databricks-hosted models. For external model spend, see External models.

For requests served through a Unity AI Gateway model service, Databricks populates the following fields on MODEL_SERVING records in system.billing.usage:

Field

Description

usage_metadata.ai_gateway.endpoint_name

The name of the Unity AI Gateway model service that received the request. This is the Unity Catalog fully qualified name, in the form <catalog>.<schema>.<modelservice>.

usage_metadata.ai_gateway.endpoint_id

The ID of the Unity AI Gateway model service.

usage_metadata.ai_gateway.destination_model

The destination model that handled the request, for example GPT-5.2.

usage_metadata.ai_gateway.destination_id

The ID of the target that handled the request.

identity_metadata.run_by

The user or Databricks service principal that issued the request.

custom_tags

Service tags configured on the Unity AI Gateway model service, such as team or cost_center.

Field

Description

usage_metadata.ai_gateway.endpoint_name

The name of the Unity AI Gateway model service that received the request. This is the Unity Catalog fully qualified name, in the form <catalog>.<schema>.<modelservice>.

usage_metadata.ai_gateway.endpoint_id

The ID of the Unity AI Gateway model service.

usage_metadata.ai_gateway.destination_model

The destination model that handled the request, for example GPT-5.2.

usage_metadata.ai_gateway.destination_id

The ID of the target that handled the request.

identity_metadata.run_by

The user or Databricks service principal that issued the request.

custom_tags

Service tags configured on the Unity AI Gateway model service, such as team or cost_center.

Unity AI Gateway populates these fields for both real-time and batch inference requests routed through it.

External models

For requests routed to external models through model provider services in Unity Catalog, Databricks computes the estimated USD spend for each request from its token usage and the external provider's published prices. Spend is aggregated hourly and recorded in the system.ai_gateway.external_model_spend system table. Use this table to analyze external model spend by model provider service, target model, and requesting principal.

note

Spend for external models is calculated using the external provider's published prices and is provided for informational purposes only. These figures might not reflect your final provider invoice, and Databricks is not liable for discrepancies in third-party billing.

External model spend schema

The system.ai_gateway.external_model_spend table has the following schema:

Column name

Type

Description

record_id

STRING

A unique identifier for the aggregated spend record.

account_id

STRING

The account ID.

workspace_id

STRING

The ID of the workspace where the model provider service is configured.

usage_date

DATE

The date of the usage record, derived from usage_start_time.

usage_start_time

TIMESTAMP

The start of the hourly aggregation window, in UTC.

usage_end_time

TIMESTAMP

The end of the hourly aggregation window, in UTC.

ingestion_date

DATE

The date the record was ingested into the table.

usage_metadata

STRUCT

Metadata about the external model usage, including provider, model, endpoint_id, endpoint_name, destination_id, and destination_name.

custom_tags

STRUCT

User-provided tags for cost attribution, including endpoint_tags and request_tags.

usage_unit

STRING

The unit of measurement for usage_quantity. Always USD.

usage_quantity

DECIMAL

The estimated cost, in usage_unit, for the aggregation window.

pricing_metadata

STRUCT

Metadata about the pricing applied, including service_tier and long_context.

identity_metadata

STRUCT

Identity of the requester, including run_by and run_as.

Column name

Type

Description

record_id

STRING

A unique identifier for the aggregated spend record.

account_id

STRING

The account ID.

workspace_id

STRING

The ID of the workspace where the model provider service is configured.

usage_date

DATE

The date of the usage record, derived from usage_start_time.

usage_start_time

TIMESTAMP

The start of the hourly aggregation window, in UTC.

usage_end_time

TIMESTAMP

The end of the hourly aggregation window, in UTC.

ingestion_date

DATE

The date the record was ingested into the table.

usage_metadata

STRUCT

Metadata about the external model usage, including provider, model, endpoint_id, endpoint_name, destination_id, and destination_name.

custom_tags

STRUCT

User-provided tags for cost attribution, including endpoint_tags and request_tags.

usage_unit

STRING

The unit of measurement for usage_quantity. Always USD.

usage_quantity

DECIMAL

The estimated cost, in usage_unit, for the aggregation window.

pricing_metadata

STRUCT

Metadata about the pricing applied, including service_tier and long_context.

identity_metadata

STRUCT

Identity of the requester, including run_by and run_as.

Observability

The built-in usage dashboard includes a Cost Analysis page for monitoring cost and analyzing cost breakdowns over time. You can analyze cost across multiple dimensions, including:

  • Model service
  • Target model
  • Requesting user or Databricks service principal

In addition to Databricks cost, the dashboard includes external model spend from the system.ai_gateway.external_model_spend table.

To open the dashboard, click Govern in the top right of the Unity AI Gateway page, then click Usage Dashboard. For details on importing and updating the dashboard, see Built-in usage dashboard.

ai-gateway cost analysis dashboard

ai-gateway cost analysis drilldown

note

Cost observability is available in dashboard version 0.4 and above. Account admins must update the dashboard to receive the latest template changes. See Built-in usage dashboard.

Analyzing cost

prompt

Genie Code (Agent mode) can do this for you. Try this example prompt:

Query system.billing.usage to show AI Gateway DBU cost for the past 30 days, broken down by usage_metadata.ai_gateway.endpoint_name, destination model, and requesting user. Filter to MODEL_SERVING records. Show top 10 in each.

Databricks-hosted models

The following queries analyze cost for Databricks-hosted models in system.billing.usage. Cost can be broken down by model service, target model, and principal.

By model service

SQL
SELECT
usage_metadata.ai_gateway.endpoint_name AS endpoint_name,
SUM(usage_quantity) AS dbus
FROM system.billing.usage
WHERE billing_origin_product = 'MODEL_SERVING'
AND usage_metadata.ai_gateway.endpoint_name IS NOT NULL
AND usage_unit = 'DBU'
AND usage_date >= current_date() - INTERVAL 30 DAYS
GROUP BY endpoint_name
ORDER BY dbus DESC;

By destination model

SQL
SELECT
usage_metadata.ai_gateway.destination_model AS destination_model,
SUM(usage_quantity) AS dbus
FROM system.billing.usage
WHERE billing_origin_product = 'MODEL_SERVING'
AND usage_metadata.ai_gateway.endpoint_name IS NOT NULL
AND usage_unit = 'DBU'
AND usage_date >= current_date() - INTERVAL 30 DAYS
GROUP BY destination_model
ORDER BY dbus DESC;

By user or Databricks service principal

SQL
SELECT
identity_metadata.run_by AS run_by,
SUM(usage_quantity) AS dbus
FROM system.billing.usage
WHERE billing_origin_product = 'MODEL_SERVING'
AND usage_metadata.ai_gateway.endpoint_name IS NOT NULL
AND identity_metadata.run_by IS NOT NULL
AND usage_unit = 'DBU'
AND usage_date >= current_date() - INTERVAL 30 DAYS
GROUP BY run_by
ORDER BY dbus DESC;

External models

The following queries analyze external model spend in system.ai_gateway.external_model_spend. Spend can be broken down by model provider service, target model, and request tags.

By model provider service

SQL
SELECT
usage_metadata.endpoint_name AS model_provider_service,
SUM(usage_quantity) AS usd
FROM system.ai_gateway.external_model_spend
WHERE usage_start_time >= current_timestamp() - INTERVAL 30 DAYS
GROUP BY model_provider_service
ORDER BY usd DESC;

By destination model

SQL
SELECT
usage_metadata.model AS destination_model,
SUM(usage_quantity) AS usd
FROM system.ai_gateway.external_model_spend
WHERE usage_start_time >= current_timestamp() - INTERVAL 30 DAYS
GROUP BY destination_model
ORDER BY usd DESC;

By user or Databricks service principal

SQL
SELECT
identity_metadata.run_by AS run_by,
SUM(usage_quantity) AS usd
FROM system.ai_gateway.external_model_spend
WHERE usage_start_time >= current_timestamp() - INTERVAL 30 DAYS
GROUP BY run_by
ORDER BY usd DESC;

By request tag

To attach request tags to your queries, see Tag requests for usage tracking.

SQL
SELECT
custom_tags.request_tags['team'] AS team,
SUM(usage_quantity) AS usd
FROM system.ai_gateway.external_model_spend
WHERE usage_start_time >= current_timestamp() - INTERVAL 30 DAYS
GROUP BY team
ORDER BY usd DESC;

Limitations

  • Spend attribution for Databricks-hosted models applies to MODEL_SERVING records in system.billing.usage.
  • For model services with multiple destinations, such as traffic splitting or fallbacks, ai_gateway.destination_model and ai_gateway.destination_id identify the destination that ultimately served the request.
  • External model spend is supported only for model provider services in Unity Catalog.
  • External model spend tracking is not currently supported for the Custom provider. Databricks estimates spend from each provider's published prices, which are not available for custom endpoints.