jaeger deep dive [b5aa9179]
Tags: kubernetes (k8s)
- github.com/jaegertracing
-
Mastering distributed tracing book
-
Transative service graphs
- Services with the request originating from the service is highlighted
- Trace diffs in jaeger latest version
-
Jaeger
-
From dapper and openzipkin
- Created at Uber in 2015
-
- Jaeger inside now uses Kafka
1. Sampling
1. Sampling
- sampling is to reduce costs of sampling
- trace data is usually very repetitive
- sampling -> consistent (all or nothing), no missing parts of the trace
-
head based sampling
- easy to implement
- spread out configuration since there may be multiple
-
remote sampling
- reads configuration from central tier in the backend
-
tail based sampling
- can be much more advanced
- can catch anomalies
- requires temp storage of all tarces
- applications constantly incur performance
2. opentracing
2. opentracing
- opentelemetry implementation of the opentracing api
- allows you to change tracing systems
-
jaeger components in opentelemetry
- opentelemetry sdk's have jaeger grpc exporter and jaeger propagation
- this means anything exporting with open telemetry can use jaeger
-
opentracing shim
- all existing opentracing libs with opentelemtry sdk
- jaeger client libs support w3c trace context
-
deploying jaeger onto kubernetes (k8s)
- helm charts
-
jaeger operator -> most advanced, allInOne and production deployment
- auto provision with Kafka
- plain kube manifest