Monitoring and troubleshooting
As with any other distributed system, the tracing backend itself must be observable. Jaeger exposes numerous metrics for all of its components, from the client libraries to the backend components. Typical metrics include stats for the number of spans created, received, processed, sampled and non-sampled, and so on. As an example, the following are some of the metrics emitted by the Jaeger client in the frontend
service of the HotROD application (from Chapter 2, Take Tracing for a HotRod Ride):
hotrod_frontend_jaeger_started_spans{sampled="n"} 0 hotrod_frontend_jaeger_started_spans{sampled="y"} 24 hotrod_frontend_jaeger_finished_spans 24 hotrod_frontend_jaeger_traces{sampled="n",state="joined"} 0 hotrod_frontend_jaeger_traces{sampled="n",state="started"} 0 hotrod_frontend_jaeger_traces{sampled="y",state="joined"} 0 hotrod_frontend_jaeger_traces{sampled="y",state="started"} 1
As we can see, it reports the number of started and finished spans, partitioned by the...