Skills distributed-tracing
📦

distributed-tracing

Safe ⚡ Contains scripts🌐 Network access⚙️ External commands

Implement Distributed Tracing with Jaeger and Tempo

Debugging microservices is difficult without visibility into request flows across services. This skill helps you implement distributed tracing with Jaeger and Tempo to track requests, identify bottlenecks, and understand service dependencies.

Supports: Claude Codex Code(CC)
📊 70 Adequate
1

Download the skill ZIP

2

Upload in Claude

Go to Settings → Capabilities → Skills → Upload skill

3

Toggle on and start using

Test it

Using "distributed-tracing". Help me deploy Jaeger on Kubernetes

Expected outcome:

I will help you deploy Jaeger on Kubernetes using the Jaeger Operator. First, I will create the observability namespace and deploy the operator. Then I will configure a production Jaeger instance with Elasticsearch storage and enable ingress for the UI.

Using "distributed-tracing". Add tracing to my Flask application

Expected outcome:

I will instrument your Flask application with OpenTelemetry. I will install the required packages, initialize the tracer provider with Jaeger exporter, and add automatic Flask instrumentation. I will also show you how to create custom spans for database queries.

Using "distributed-tracing". Configure sampling to trace only errors

Expected outcome:

I will set up a custom sampler that traces all requests with errors while sampling only 1 percent of successful requests. This approach captures all failures for debugging while minimizing overhead from normal operations.

Quality Score

38
Architecture
100
Maintainability
87
Content
21
Community
100
Security
91
Spec Compliance

What You Can Build

Debug Microservice Latency Issues

Deploy Jaeger tracing and instrument your Python Flask services to identify which downstream calls are causing slow API responses.

Map Service Dependencies

Set up distributed tracing across your Node.js microservices to visualize service dependency graphs and understand request flow patterns.

Implement Production Observability

Configure Tempo with Grafana and implement sampling strategies to track traces in production without performance overhead.

Try These Prompts

Set up Jaeger on Kubernetes
Help me deploy Jaeger on my Kubernetes cluster with Elasticsearch storage
Instrument Flask Application
Add OpenTelemetry instrumentation to my Flask API to send traces to Jaeger
Configure Context Propagation
Show me how to propagate trace context when my Node.js service calls downstream APIs
Optimize Tracing Overhead
Help me configure adaptive sampling for my production Go services to reduce tracing overhead while capturing errors

Best Practices

  • Use sampling rates between 1 and 10 percent in production to minimize performance overhead
  • Add meaningful tags like user ID and request ID to spans for easier filtering and analysis
  • Propagate trace context across all service boundaries including message queues and async jobs

Avoid

  • Tracing 100 percent of production traffic without sampling leads to high storage costs and performance impact
  • Creating too many spans for fine-grained operations adds overhead without useful insights
  • Storing sensitive data like passwords or API keys in span tags violates security best practices

Frequently Asked Questions

What is the difference between Jaeger and Tempo?
Jaeger is a complete distributed tracing system with its own UI and query capabilities. Tempo is a tracing backend designed to integrate with Grafana for visualization. Tempo uses object storage like S3 for cost-effective trace storage at scale.
How much overhead does distributed tracing add?
With proper sampling, distributed tracing typically adds less than 1 percent CPU overhead. The main cost is network bandwidth to send spans and storage for trace data. Use sampling rates of 1 to 10 percent in production.
Can I trace requests across different programming languages?
Yes. OpenTelemetry provides instrumentation libraries for all major languages and uses standard propagation formats. As long as all services propagate trace context headers, traces work across Python, Node.js, Go, Java, and other languages.
How do I correlate traces with logs?
Extract the trace ID from the current span context and add it to your log entries as a structured field. This allows you to jump from a trace to related logs and vice versa for complete request visibility.
What sampling strategy should I use?
Start with probabilistic sampling at 1 percent for high-traffic services. Use higher rates for low-traffic services. Consider adaptive sampling that always traces errors while sampling successful requests at a lower rate.
How long should I retain trace data?
Most teams retain traces for 7 to 30 days. Traces are useful for recent debugging but become less valuable over time. Configure retention based on your storage budget and compliance requirements.

Developer Details

File structure

📄 SKILL.md