عجفت الغور

jaeger deep dive

Tags: kubernetes (k8s)

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

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