Tracking down problems with Jaeger

Hunter

Jaeger in Practice

In everyday life, Jaeger is just as relevant for administrators as it is for application developers. Admins use the tool primarily for troubleshooting, as described, whereas developers also use Jaeger to find out whether changes to the individual components of a microservice application deliver the desired results. However, how can you ideally set up your Jaeger instance to leverage it to the full extent in a fast and efficient way? How can Jaeger be combined usefully with other tools such as Prometheus and Grafana for more benefits?

The good news is that ready-made how-tos exist that describe Jaeger integration with the popular applications of today's containerized world. Moreover, many tools, such as Prometheus, have decided to support Jaeger integration right out of the box.

Jaeger and Prometheus are often mistakenly considered competitors because they both have something to do with metrics data and monitoring. In fact, however, the two can combine perfectly to help you boost the efficiency of platform monitoring. Jaeger's query component, for example, now has a /metrics endpoint through which it outputs acquired metrics data in the Prometheus format (Figure 4). In doing so, the component acts as a kind of exporter for Prometheus data.

Figure 4: Because Jaeger now also has an interface to output data in Prometheus format, metric data acquired by Jaeger can be displayed directly in Prometheus and therefore also in Grafana. © Grafana

Once the data from Jaeger arrives in Prometheus, you can do anything the tool allows – usually in combination with Grafana. Visualization, for example, then becomes a breeze. Although the Jaeger UI is optimized as a standalone component for displaying traces and spans, Grafana in combination with Prometheus impresses when it comes to processing metrics data.

Istio and Envoy are further outstanding examples of all-around successful Jaeger integration. The Istio service mesh now also integrates Open Telemetry functionality so that Istio operations can be displayed in detail in Jaeger (Figure 5). The Envoy load balancer component included in Istio can also be excellently linked with Jaeger (Figure 6). More detailed information regarding the steps required for integration can be found in the respective manuals.

Figure 5: Istio has a native Jaeger connection, so actions initiated by, say, the Istio ingress gateway can be displayed as traces in Jaeger without any further action. © Istio
Figure 6: The Istio Envoy component links up well with Jaeger to represent and track traffic flows visually. © Arvind Thangamani

Conclusions

If programmers fail to integrate Jaeger at the development level, a Jaeger server instance – no matter how well it is set up – will be of no use. Conversely, you need to plan for a working Jaeger framework in your data centers from the outset. Practice shows that getting a Jaeger setup up and running is anything but trivial. System administrators also tend to underestimate the load that a setup like this must shoulder. It can be substantial if several microservices generate traces at the same time; therefore, the hardware for the setup must be dimensioned appropriately.

Infos

  1. Open Telemetry standard: https://opentelemetry.io
  2. Jaeger tracing: https://www.jaegertracing.io

The Author

Freelance journalist Martin Gerhard Loschwitz focuses primarily on topics such as OpenStack, Kubernetes, and Ceph.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy ADMIN Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus