trace-debugging
/trace-debugging
Use when investigating a specific trace_id — following a single request across services to understand where it failed, hung, or behaved unexpectedly. Triggers on "trace_id", "follow this request", "distributed trace", "trace across services", "what happened to request X".
- Author
- pranavj17 ↗
- Repository
- mcp-server-graylog ↗
- Licence
- MIT
- Last repository change
- 25.06.2026
Assessment and security
- Files in this package
- 1
- Scripts
- 0
- HTML comments
- 0
- URLs in SKILL.md
- 0
No signals detected. Repository changed on 25.06.2026, without references to retired models or APIs.
MIT, open: use and modify while retaining author attribution.
What it does and when to use it
Use when investigating a specific trace_id — following a single request across services to understand where it failed, hung, or behaved unexpectedly. Triggers on "trace_id", "follow this request", "distributed trace", "trace across services", "what happened to request X".
Triggers from the description
Original author description
Use when investigating a specific trace_id — following a single request across services to understand where it failed, hung, or behaved unexpectedly. Triggers on "trace_id", "follow this request", "distributed trace", "trace across services", "what happened to request X".
How it works
- When to dispatch the agent instead
- Playbook
- Pitfalls
- What to return to the user
SKILL.md preview
--- name: trace-debugging description: Use when investigating a specific trace_id — following a single request across services to understand where it failed, hung, or behaved unexpectedly. Triggers on "trace_id", "follow this request", "distributed trace", "trace across services", "what happened to request X". --- # Trace Debugging Use this skill when you have a `trace_id` and need to understand the end-to-end behavior of a single request. ## When to dispatch the agent instead If `trace_request` returns >200 logs OR the trace spans >5 services, stop and dispatch the `graylog-trace-analyzer` subagent. It returns a synthesized timeline (~50 lines) instead of flooding the main context with raw logs. Inline investigation is for smaller, focused traces. ## Playbook ### Step 1 — Pull the trace Call `trace_request` with: - `traceId`: the trace ID the user gave you (or you extracted from a Sentry/dashboard URL). - `from` / `to`: a generous window — ±15 minutes around the suspected event. Trace IDs are unique enough that overshooting is cheap. - `limit`: 200 to start. Raise to 500 if you see truncation hints. The response groups logs by `service` and orders by timestamp. Read it once before doing anything else. ### Step 2 — Identify the failure span Scan the trace for: - The first `error` or `fatal` level entry — that is the proximate failure. - The originating service — usually the entry-point (gateway, API server) or the service that emitted the first error. - Latency outliers — gaps > 1s between consecutive spans often indicate a hung dependency. ### Step 3 — Pull surrounding context for each error span For each error span, call `get_surrounding_logs` with: - `centerTimestamp`: the error timestamp. - `source` or `pod`: filter to the same pod, since adjacent context from other pods is noise. - `secondsBefore` / `secondsAfter`: start with 5 each. The error message itself is rarely the cause. The cause is usually 1–10 lines before, in the same pod, often at `info` or `warn` level (e.g., a connection timeout, a config reload, a retry exhaustion). ### Step 4 — Build the timeline Assemble a human-readable summary: - Originating service / pod - Trace duration (first timestamp to last) - Error spans in chronological order, each with: timestamp, service, message, likely cause from surrounding context - Propagation: did the error originate downstream and bubble up, or originate at the entry point? ## Pitfalls - **Window too narrow.** Long-running jobs (batch processors, background workers) can have trace IDs alive for hours. If `trace_request` returns very few results, widen the window before assuming the trace is small. - **Missing trace_id on some lines.** Not every log emits trace_id. The trace_request results only show lines tagged with the ID. Use `get_surrounding_logs` to pull adjacent untagged context. - **Re-used trace IDs.** Rare but possible if a service is misconfigured to reuse IDs. If you see two clearly-different requests under one ID, widen `from`/`to` and check the timestamps. - **Clock skew.** Pods on different hosts can have skewed clocks. A "downstream first" timeline order can be an artifact of skew, not actual causation. ## What to return to the user A 5–10 line synthesis: - Originating service / pod - Root-cause line (from surrounding context, not the propagated error) - Blast radius (how many downstream services were affected) - Suggested next step (look at deploy times? check dependency health? read a specific service's recent commits?)
Versions
The database has no other skills named trace-debugging.
Database snapshot: 13.11.2026 · package version 2f8329a1cd0a (SHA-256 digest of the entire package)
Downloads in the last 30 days: 0 · ranking
Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.
Similar skills
- 90distributed-debugging-debug-trace
Set up debugging environments, distributed tracing, and diagnostic tools, and establish troubleshooting practices for development and production. Use when configuring debugging workflows or tracing requests across services. - 90distributed-tracing
Covers following a single request across service boundaries — context propagation, span and attribute design, sampling that keeps the traces worth keeping, and using traces to find where latency actually accumulates. Use this whenever the user debugs a slow request touching… - 100verify-recent-trace
Find a recent trace in Honeycomb, to see what happened in a recent test. Use when asked to "verify in Honeycomb", "find the most recent trace", or "show me the trace". - 100trace-diagram
Draw a trace as an interactive, self-contained sequence diagram (archify) from its Grafana Tempo spans, without investigating it. Use when the user wants to see, share or export the call sequence of a trace id - who called whom, where the time went, which span failed first - and… - 90distributed-tracing
Follow one request across service boundaries using spans, propagated context, and critical-path reading to locate where latency and errors originate. Use when a request is slow or failing and the cause lives between services, not inside any single one. - 100investigate-ci-failure
Investigate CI/Prow job failures on a GitHub pull request. Use when the user pastes a PR URL and asks about CI failures, red checks, test failures, or wants to understand why a job failed.