Introduction When Jaeger does not record traces, distributed tracing visibility is lost. This makes it impossible to debug cross-service latency issues, error propagation, and dependency problems.
Symptoms - Jaeger UI shows "No traces found" for recent time range - Application logs show "failed to flush spans" - Jaeger collector logs show connection errors - Traces recorded for some services but not others - Trace sampling rate shows 0%
Common Causes - Sampling rate set too low (0% or 0.001) - Jaeger collector unreachable from application - Instrumentation SDK misconfigured - Trace context not propagating between services - Storage backend full or unavailable
Step-by-Step Fix 1. **Check Jaeger collector status': ```bash kubectl get pods -n jaeger -l app=jaeger-collector kubectl logs -n jaeger -l app=jaeger-collector --tail=50 ```
- 1.**Check sampling configuration':
- 2.```yaml
- 3.# jaeger-agent command line
- 4.--sampling.strategies-file=/etc/jaeger/sampling.json
- 5.# sampling.json:
- 6.{
- 7."default_strategy": {"type": "probabilistic", "param": 0.1},
- 8."service_strategies": [
- 9.{"service": "my-app", "type": "probabilistic", "param": 1.0}
- 10.]
- 11.}
- 12.
` - 13.**Verify instrumentation is sending traces':
- 14.```bash
- 15.# Check if spans are being exported
- 16.export OTEL_TRACES_EXPORTER=console
- 17.# Run application and check console output
- 18.
`