Tempo · Schema
Grafana Tempo Trace
Schema for a Grafana Tempo distributed trace in OTLP JSON format containing resource spans and individual spans
Distributed TracingObservabilityOpenTelemetryGrafanaMonitoring
Properties
| Name | Type | Description |
|---|---|---|
| batches | array | OTLP resource span batches grouped by service resource |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://api-evangelist.com/schemas/tempo/trace.json",
"title": "Grafana Tempo Trace",
"description": "Schema for a Grafana Tempo distributed trace in OTLP JSON format containing resource spans and individual spans",
"type": "object",
"properties": {
"batches": {
"type": "array",
"description": "OTLP resource span batches grouped by service resource",
"items": {
"type": "object",
"properties": {
"resource": {
"type": "object",
"description": "Resource describing the source of the spans",
"properties": {
"attributes": {
"type": "array",
"description": "Resource attributes like service.name, service.version",
"items": {"$ref": "#/$defs/KeyValue"}
}
}
},
"scopeSpans": {
"type": "array",
"description": "Spans grouped by instrumentation scope",
"items": {
"type": "object",
"properties": {
"scope": {
"type": "object",
"description": "Instrumentation scope (library name and version)",
"properties": {
"name": {"type": "string"},
"version": {"type": "string"}
}
},
"spans": {
"type": "array",
"items": {"$ref": "#/$defs/Span"}
}
}
}
}
}
}
}
},
"$defs": {
"Span": {
"type": "object",
"description": "A single operation in a distributed trace",
"required": ["traceId", "spanId", "name", "startTimeUnixNano"],
"properties": {
"traceId": {
"type": "string",
"description": "16-byte trace identifier in hex",
"pattern": "^[0-9A-F]{32}$"
},
"spanId": {
"type": "string",
"description": "8-byte span identifier in hex",
"pattern": "^[0-9A-F]{16}$"
},
"parentSpanId": {
"type": "string",
"description": "Parent span identifier (empty string for root spans)"
},
"name": {
"type": "string",
"description": "Operation name"
},
"kind": {
"type": "integer",
"description": "Span kind: 0=unspecified, 1=internal, 2=server, 3=client, 4=producer, 5=consumer",
"enum": [0, 1, 2, 3, 4, 5]
},
"startTimeUnixNano": {
"type": "string",
"description": "Start time in nanoseconds since Unix epoch"
},
"endTimeUnixNano": {
"type": "string",
"description": "End time in nanoseconds since Unix epoch"
},
"attributes": {
"type": "array",
"description": "Span attributes (OpenTelemetry semantic conventions)",
"items": {"$ref": "#/$defs/KeyValue"}
},
"events": {
"type": "array",
"description": "Span events (log-like annotations)",
"items": {
"type": "object",
"properties": {
"timeUnixNano": {"type": "string"},
"name": {"type": "string"},
"attributes": {
"type": "array",
"items": {"$ref": "#/$defs/KeyValue"}
}
}
}
},
"status": {
"type": "object",
"description": "Span status",
"properties": {
"code": {
"type": "integer",
"description": "0=unset, 1=ok, 2=error",
"enum": [0, 1, 2]
},
"message": {"type": "string"}
}
}
}
},
"KeyValue": {
"type": "object",
"description": "An attribute key-value pair",
"required": ["key", "value"],
"properties": {
"key": {"type": "string"},
"value": {
"type": "object",
"description": "AnyValue container",
"properties": {
"stringValue": {"type": "string"},
"intValue": {"type": "integer"},
"doubleValue": {"type": "number"},
"boolValue": {"type": "boolean"},
"arrayValue": {"type": "object"},
"kvlistValue": {"type": "object"}
}
}
}
}
}
}