Skip to content
Skills Library
DevOps & cloud · Analysis

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".

Licence
MIT
Last repository change
25.06.2026

Assessment and security

90/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content25 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
1
Scripts
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 25.06.2026, without references to retired models or APIs.

Licence

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

trace_idfollow this requestdistributed tracetrace across serviceswhat happened to request X
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

  1. When to dispatch the agent instead
  2. Playbook
  3. Pitfalls
  4. What to return to the user
Original SKILL.md headings · 59 lines, 517 words
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.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.