distributed-tracing logo

distributed-tracing

distributed tracing

aj-geddes/useful-ai-prompts313installs245stars

SKILL.md

Full skill instructions

Distributed Tracing

Table of Contents

Overview

Set up distributed tracing infrastructure with Jaeger or Zipkin to track requests across microservices and identify performance bottlenecks.

When to Use

  • Debugging microservice interactions
  • Identifying performance bottlenecks
  • Tracking request flows
  • Analyzing service dependencies
  • Root cause analysis

Quick Start

Minimal working example:

# docker-compose.yml
version: "3.8"
services:
  jaeger:
    image: jaegertracing/all-in-one:latest
    ports:
      - "5775:5775/udp"
      - "6831:6831/udp"
      - "16686:16686"
      - "14268:14268"
    networks:
      - tracing

networks:
  tracing:

Reference Guides

Detailed implementations in the references/ directory:

GuideContents
Jaeger SetupJaeger Setup, Node.js Jaeger Instrumentation
Express Tracing MiddlewareExpress Tracing Middleware
Python Jaeger IntegrationPython Jaeger Integration
Distributed Context PropagationDistributed Context Propagation
Zipkin IntegrationZipkin Integration, Trace Analysis

Best Practices

✅ DO

  • Sample appropriately for your traffic volume
  • Propagate trace context across services
  • Add meaningful span tags
  • Log errors with spans
  • Use consistent service naming
  • Monitor trace latency
  • Document trace format
  • Keep instrumentation lightweight

❌ DON'T

  • Sample 100% in production
  • Skip trace context propagation
  • Log sensitive data in spans
  • Create excessive spans
  • Ignore sampling configuration
  • Use unbounded cardinality tags
  • Deploy without testing collection