Unified trace table schema reference
The unified trace table follows the OpenTelemetry span data model. Each row is one span. The table is clustered by time.
Column | Description | Type |
|---|---|---|
| Unique identifier for this table row. | STRING |
| Timestamp when the span was recorded. | TIMESTAMP |
| UTC date when the span was recorded. Useful for partition pruning. | DATE |
| Name of the Unity AI Gateway service (endpoint name). | STRING |
| Identifier for the service named in | STRING |
| Identifier shared by all spans in a single request tree. Filter on this to reconstruct a full trace. | STRING |
| Unique identifier for this span. | STRING |
| OpenTelemetry | STRING |
|
| STRING |
| OpenTelemetry trace flags bitmask. | INT |
| Human-readable span name, for example | STRING |
| Span kind: | STRING |
| Span start time in nanoseconds since Unix epoch. | BIGINT |
| Span end time in nanoseconds since Unix epoch. | BIGINT |
| Span attributes as a VARIANT object. Key names contain dots; use backtick syntax to access them: | VARIANT |
| Number of attributes dropped due to limits. | INT |
| Array of timed events within the span. The primary event type is | ARRAY<STRUCT> |
| Number of events dropped due to limits. | INT |
| Array of links to other spans or traces. | ARRAY<STRUCT> |
| Number of links dropped due to limits. | INT |
| Span status with | STRUCT |
| Resource attributes describing the instrumented entity, for example | STRUCT |
| Schema URL for the resource semantic conventions. | STRING |
| Name and version of the instrumentation library that produced the span. | STRUCT |
| Schema URL for the span semantic conventions. | STRING |
The table also carries columns needed for its physical optimization, notably clustering, that are not useful for queries. These columns are named with an _ prefix. Treat them as implementation details that may change in future versions.
Key attributes
The attributes column is a VARIANT. Access fields using backtick syntax for keys that contain dots: attributes:\gen_ai.request.model``. The keys present depend on whether the span is a model service (LLM) call or an MCP service call.
Model service (LLM) spans:
Attribute | Description |
|---|---|
| Inbound API type, for example |
| User or service principal that made the request. |
| Requester type, for example |
| Databricks-generated request ID. |
| Full request URL. |
| End-to-end request latency in milliseconds. |
| Time to first byte in milliseconds. |
| Attempt type, for example |
| Target model, for example |
|
|
| Operation, for example |
| Requested model. |
| Provider, for example |
| Input tokens consumed. |
| Output tokens generated. |
| HTTP status code. |
| Error type on failures, for example |
| Detailed token usage as a JSON string. |
| Serialized request payload. |
| Serialized response payload (empty on failure). |
MCP service spans:
Attribute | Description |
|---|---|
| MCP method, for example |
| Operation, for example |
| Name of the tool being invoked, for example |
| Extracted tool arguments, as a JSON string. |
| Extracted tool result, as a JSON string. |
| Requester type, for example |
| Databricks-generated request ID. |
| MCP connection type, for example |
| Backing connection or managed MCP server name, for example |
| Tool type, for example |
| Workspace ID. |
| User or service principal that made the request. |
| HTTP status from the MCP call. |
| JSON-RPC status code, for example |
| Failure classification, for example |
| Span type. |
| Serialized JSON-RPC request. |
| Serialized MCP/JSON-RPC response. |
Policy enforcement attributes (model service and MCP service spans):
When a policy blocks a request, the server span (the root span) sets the following scalar attributes. Because they are set only when a policy short-circuits the request, they also serve as a quick filter for "did any policy block this request?"
Attribute | Description |
|---|---|
| The policy that blocked the request. The Unity Catalog function FQN for a custom policy, or the attachment label for a built-in policy. |
| Enforced action, either |
Policy evaluation events
The events column holds an array of policy_evaluated events, one per evaluated (policy, phase) pair. This is where per-policy detail lives, beyond the scalar databricks.policy.* attributes on the server span. Each event carries the following keys:
Key | Description |
|---|---|
| Name of the evaluated policy. |
| Policy type, either |
| Handler for the policy. Built-in policies only. |
| Handler options. Built-in policies only. |
| Evaluated action, one of |
| Evaluation phase, either |
When a policy runs in dry-run (monitor or shadow) mode with dry_run=true, the enforced action is downgraded to ALLOW so the request proceeds, and the would-be verdict is recorded on the same event:
Key | Description |
|---|---|
| The action that would have been enforced, for example |
| Reason for the would-be action. |
| The payload a would-be transform or mask policy would have written. |