mcpField
C
correlation-tracing

correlation-tracing

github.com/aj-geddesCloud & DevOps373426 installsUpdated 34w ago
Repository

About correlation-tracing

A skill for adding correlation IDs and distributed tracing to systems with multiple services. It helps developers follow request flows, investigate errors, and understand performance using implementation guides for Express, OpenTelemetry, and Python.

Key features

  1. 01Correlation ID generation and propagation
  2. 02Request tracing across services
  3. 03Express middleware guidance
  4. 04OpenTelemetry integration guide
  5. 05Python tracing and manual propagation

Use cases

  1. 01Trace requests through microservices
  2. 02Investigate errors across services
  3. 03Visualize request flows
  4. 04Analyze latency and dependencies

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill correlation-tracing

After installing, type/correlation-tracingin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
correlation-id-middleware-express.md
manual-trace-propagation.md
opentelemetry-integration.md
python-distributed-tracing.md
scripts/
health-check.sh
templates/
dashboard-config.yaml

Details

From the project README

Correlation & Distributed Tracing

Table of Contents

Overview

Implement correlation IDs and distributed tracing to track requests across multiple services and understand system behavior.

When to Use

  • Microservices architectures
  • Debugging distributed systems
  • Performance monitoring
  • Request flow visualization
  • Error tracking across services
  • Dependency analysis
  • Latency optimization

Quick Start

Minimal working example:

import express from "express";
import { v4 as uuidv4 } from "uuid";

// Async local storage for context
import { AsyncLocalStorage } from "async_hooks";

const traceContext = new AsyncLocalStorage<Map<string, any>>();

interface TraceContext {
  traceId: string;
  spanId: string;
  parentSpanId?: string;
  serviceName: string;
}

function correlationMiddleware(serviceName: string) {
  return (
    req: express.Request,
    res: express.Response,
    next: express.NextFunction,
  ) => {
    // Extract or generate trace ID
    const traceId = (req.headers["x-trace-id"] as string) || uuidv4();
    const parentSpanId = req.headers["x-span-id"] as string;
    const spanId = uuidv4();
// ... (see reference guides for full implementation)

Reference Guides

Detailed implementations in the references/ directory:

GuideContents
Correlation ID Middleware (Express)Correlation ID Middleware (Express)
OpenTelemetry IntegrationOpenTelemetry Integration
Python Distributed TracingPython Distributed Tracing
Manual Trace PropagationManual Trace Propagation

Best Practices

✅ DO
  • Generate trace IDs at entry points
  • Propagate trace context across services
  • Include correlation IDs in logs
  • Use structured logging
  • Set appropriate span attributes
  • Sample traces in high-traffic systems
  • Monitor trace collection overhead
  • Implement context propagation
❌ DON'T
  • Skip trace propagation
  • Log without correlation context
  • Create too many spans
  • Store sensitive data in spans
  • Block on trace reporting
  • Forget error tracking

Comments

Markdown supported