Trace Record Structure
Each trace record contains:| Field | Type | Description |
|---|---|---|
id | string | Unique record identifier |
trace_id | string | OpenTelemetry trace ID (shared across related operations) |
span_id | string | OpenTelemetry span ID (unique to this operation) |
parent_span_id | string | Parent span for nested operations |
operation | string | Operation type (see below) |
upstream | string | Name of the upstream server that handled the request |
name | string | Tool, resource, or prompt name |
request | JSON | Full request payload |
response | JSON | Full response payload |
status | string | "success" or "error" |
error | string | Error message (if status is error) |
duration | duration | How long the operation took (nanoseconds) |
timestamp | datetime | When the operation occurred |
metadata | map | Additional key-value metadata |
Multi-Tenant Fields
When connected to Ultra Hub, traces also include:| Field | Description |
|---|---|
workspace_id | Workspace this gateway belongs to |
gateway_id | This gateway’s unique identifier |
Operation Types
| Type | Description |
|---|---|
tool_call | An MCP tool was invoked |
resource_read | An MCP resource was read |
prompt_get | An MCP prompt was retrieved |
tool_list | Client listed available tools |
resource_list | Client listed available resources |
prompt_list | Client listed available prompts |
Querying Traces
Traces are stored in SQLite and can be queried through the dashboard or programmatically through the storage interface.Dashboard
http://localhost:8080 provides:
- A list of all traces, sorted by timestamp
- Filtering by operation type, upstream server, status, and time range
- Full request/response payload inspection for each trace
- Duration and status breakdown
Aggregate Statistics
The storage layer computes aggregate statistics over traces:- Total requests — Count of all operations
- Success/error counts — How many succeeded vs failed
- Average duration — Mean operation time
- Requests by type — Breakdown by operation type
- Requests by server — Breakdown by upstream server