← ClaudeAtlas

distributed-tracinglisted

Distributed tracing with OpenTelemetry across services — instrument Python/Node/Go, propagate W3C trace context, export to Jaeger/Tempo, set sampling, and correlate traces with logs. Use PROACTIVELY when debugging cross-service latency, mapping service dependencies, or adding request-flow visibility to a microservice system.
SilantevBitcoin/Base-system-Claude · ★ 1 · AI & Automation · score 74
Install: claude install-skill SilantevBitcoin/Base-system-Claude
# Distributed Tracing Track a single request across many services to understand latency, dependencies, and failure points. A **trace** is the end-to-end journey; a **span** is one operation within it; **context** (W3C `traceparent`) is propagated across service boundaries so spans link into one trace. OpenTelemetry is the vendor-neutral instrumentation standard; Jaeger and Grafana Tempo are common backends. ## Use this skill when - Debug latency issues - Understand service dependencies - Identify bottlenecks - Trace error propagation - Analyze request paths ## Distributed Tracing Concepts ### Trace Structure ``` Trace (Request ID: abc123) ↓ Span (frontend) [100ms] ↓ Span (api-gateway) [80ms] ├→ Span (auth-service) [10ms] └→ Span (user-service) [60ms] └→ Span (database) [40ms] ``` ### Key Components - **Trace** - End-to-end request journey - **Span** - Single operation within a trace - **Context** - Metadata propagated between services - **Tags** - Key-value pairs for filtering - **Logs** - Timestamped events within a span ## Jaeger Setup ### Kubernetes Deployment ```bash # Deploy Jaeger Operator kubectl create namespace observability kubectl create -f https://github.com/jaegertracing/jaeger-operator/releases/download/v1.51.0/jaeger-operator.yaml -n observability # Deploy Jaeger instance kubectl apply -f - <<EOF apiVersion: jaegertracing.io/v1 kind: Jaeger metadata: name: jaeger namespace: observability spec: strategy: production storage: ty