Skip to main content
Glama
GreptimeTeam

GreptimeDB MCP Server

Official
by GreptimeTeam
template.md2.63 kB
# Trace Analysis: {{ table }} {% if trace_id %}Trace: {{ trace_id }}{% endif %} {% if service_name %}Service: {{ service_name }}{% endif %} ## Common Span Columns - `trace_id`, `span_id`, `parent_span_id` - Trace correlation - `service_name`, `span_name` - Service and operation - `duration_nano` - Span duration in nanoseconds - `span_status_code` - STATUS_CODE_OK, STATUS_CODE_ERROR, STATUS_CODE_UNSET - `timestamp` - Time index column ## Trace Lookup ```sql {% if trace_id %} -- Full trace timeline SELECT span_name, service_name, duration_nano/1000000 as duration_ms, span_status_code, parent_span_id FROM {{ table }} WHERE trace_id = '{{ trace_id }}' ORDER BY timestamp; {% else %} -- Recent traces SELECT DISTINCT trace_id, MIN(timestamp) as start_time FROM {{ table }} WHERE timestamp > now() - INTERVAL '15 minutes' GROUP BY trace_id ORDER BY start_time DESC LIMIT 20; {% endif %} ``` ## Slow Spans ```sql -- Top 10 slowest spans SELECT trace_id, span_name, service_name, duration_nano/1000000 as duration_ms FROM {{ table }} WHERE timestamp > now() - INTERVAL '1 hour' ORDER BY duration_nano DESC LIMIT 10; -- p99 latency by service (using approx_percentile_cont) SELECT service_name, approx_percentile_cont(0.99) WITHIN GROUP (ORDER BY duration_nano/1000000) as p99_ms FROM {{ table }} WHERE timestamp > now() - INTERVAL '1 hour' GROUP BY service_name ORDER BY p99_ms DESC; ``` ## Error Analysis ```sql -- Error spans SELECT trace_id, service_name, span_name, span_status_code FROM {{ table }} WHERE span_status_code = 'STATUS_CODE_ERROR' AND timestamp > now() - INTERVAL '1 hour' ORDER BY timestamp DESC LIMIT 50; -- Error rate by service SELECT service_name, COUNT(*) as total, SUM(CASE WHEN span_status_code = 'STATUS_CODE_ERROR' THEN 1 ELSE 0 END) as errors, 100.0 * SUM(CASE WHEN span_status_code = 'STATUS_CODE_ERROR' THEN 1 ELSE 0 END) / COUNT(*) as error_pct FROM {{ table }} WHERE timestamp > now() - INTERVAL '1 hour' GROUP BY service_name ORDER BY error_pct DESC; ``` ## References - [Traces Overview](https://docs.greptime.com/user-guide/traces/overview) - Trace data model and concepts - [Traces Data Model](https://docs.greptime.com/user-guide/traces/data-model) - Span schema and OpenTelemetry mapping - [Read and Write Traces](https://docs.greptime.com/user-guide/traces/read-write) - Query trace data - [Jaeger Query](https://docs.greptime.com/user-guide/query-data/jaeger) - Jaeger-compatible trace queries - [Approximate Functions](https://docs.greptime.com/reference/sql/functions/approximate) - approx_percentile_cont for latency percentiles

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/GreptimeTeam/greptimedb-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server