Skip to content
Back to skills

Debugging Runtime Logs

ASecurity

Use when debugging a runtime failure in a locally-running fleet of Spring Boot microservices - correlates logs across services by a trace key, reconstructs the cross-service timeline, isolates the failing hop, and maps it back to source.

  • 2 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 7, 2026
developmentpythonspringdebugging

Works with

  • claude code
  • mcp

Security analysis

A100/100

Scanned September 29, 2026

npx -y skills add talayash/spring-fleet --skill debugging-runtime-logs --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Debugging Runtime Logs?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Debugging Runtime Logs
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/talayash-debugging-runtime-logs/badge)](https://www.skillsdirectory.com/skills/talayash-debugging-runtime-logs)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: debugging-runtime-logs
description: Use when debugging a runtime failure in a locally-running fleet of Spring Boot microservices - correlates logs across services by a trace key, reconstructs the cross-service timeline, isolates the failing hop, and maps it back to source.
---

# Debugging Runtime Logs Across a Service Fleet

When something breaks in a multi-service dev run, the symptom usually appears in
one service while the cause lives in another. This skill correlates logs across
the whole fleet and ties the failure back to code.

## Prerequisites

- A `spring-fleet.config.json` exists (else run `/fleet-init`).
- Services write to the configured `logDir` (see the `spring-fleet-logging-setup`
  skill if logs are scattered or console-only).

## Procedure

1. **Get a correlation handle.** Best case: an OTel `trace_id` (32-char hex)
   from the user's APM dashboard or a `traceparent` header, or a legacy
   `sessionId` / `X-Request-Id` from a failed request. Otherwise, start from
   the error message/stack the user pasted; extract a key from a nearby log
   line, preferring `trace_id` over `sessionId`.

2. **Dispatch the `log-correlator` agent** with the config path and the trace
   value (or error snippet). It runs `scripts/correlate_logs.py` and returns one
   chronological cross-service timeline plus a failure-origin analysis.

   Run directly if you prefer:
   ```
   python "${CLAUDE_PLUGIN_ROOT}/scripts/correlate_logs.py" \
     --config ./spring-fleet.config.json --value <traceValue>
   ```

3. **Read the timeline as a story.** Follow the request hop by hop. The first
   ERROR/exception in time order is the likely origin; everything after it is
   usually propagation. Watch the time gaps: a long gap before an error often
   means a timeout.

4. **Map the origin to code.** Take the failing service + class from the log and
   open the source. For a cross-service cause, dispatch the `fleet-explorer`
   agent (or use the `tracing-across-services` skill) to confirm the call path.

5. **Report.** State: what the user did, the cross-service timeline, the failure
   origin (service + `file:line`), how it surfaced upstream, and a
   **ROOT-CAUSE HYPOTHESIS** block: what the fault is, where in code to fix
   it, why the timeline supports that, your confidence, and a concrete
   suggested fix (snippet or behavior). Always include alternatives the
   evidence does not rule out. Call out any service with **no log file**;
   a missing log can hide the real cause.

## Fallbacks

- **No trace key in logs:** correlate by timestamp window + endpoint and say so.
- **Console-only logs:** point the user at `spring-fleet-logging-setup` to get
  stable per-service log files (or, later, the `/run` tee command).
- **Empty result:** the value may be wrong, or the request never reached the
  fleet. Widen with `/logs --grep` around the timeframe.

## Outside Claude Code

- `${CLAUDE_PLUGIN_ROOT}` is the spring-fleet plugin root. Claude Code fills it in; in Codex it is the folder two directories above this SKILL.md.
- No plugin subagents (Codex): read `agents/log-correlator.md` and `agents/fleet-explorer.md` under the plugin root and do that work yourself.
- spring-fleet MCP tools: pass `config_path` (absolute path of the project's `spring-fleet.config.json`). Codex starts the server outside the project, so it cannot find the config on its own.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.