Let’s explore the basics before getting into the tactics for boosting Jaeger.
Origin story
Jaeger was founded in 2015 within the walls of Uber. Yes, that Uber. Yuri Shkuro created it to help engineers work out where issues were popping up.
This was important because Uber had a complex network of services. Many of these depended on other services as well as their own sub-services.
To the left: a glimpse of the services network that drives the Uber app. A large number of these services get triggered every time you request an Uber. (Source: Youtube, Jaeger Intro – Yuri Shkuro)
Chances of the whole request falling apart were high. Uber risked losing a ride fare if one or some of the component services failed or slowed down.
“In deep distributed systems, finding what is broken and whereis often more difficult than why“
— Yuri Skhuro, Founder & Maintainer, CNCF Jaeger
Jaeger helps us find out what services are experiencing issues and where. That’s useful to know. It can help engineers fix small issues before they snowball into serious ones.
Do you even need Jaeger?
You might be wondering whether you even need Jaeger. Your use case might not be as complex as Uber’s. It has a complex web of services and millions of requests per day.
Tracing is not an absolute must-have for simpler services setups. But it is handy for finding bottlenecks if you run more than a handful of services.
Also, imagine this situation. Your application suddenly gets a traffic spike and requests are not completing. How will you find the culprit fast enough to fix the issue?
One more stop and then we’ll start to cover how to optimise Jaeger for tracing.
How Jaeger works
See a simplified view of how Jaeger works below.
We’ll cover the highlighted terms in greater depth in the tactics section
Step1
Jaeger Agent collects “span data” by observing UDP packets of services
Step 2
Data (service name, start time, duration) gets sent on to the Collector
Step 3
Collector sends data to 2 places: Analytics and Visual Dashboard
Now, let’s make Jaeger work well for your setup
Tailor Jaeger to your specific tracing needs with these tactics:
TACTIC #12 ways to install Jaeger Agent
Jaeger Agent can run in two distinct ways: as a daemon or sidecar.
Let’s compare them:
Setup Jaeger as daemonset
Mechanism: Jaeger Agent runs as a pod and collects data from all other pods within the same node
Useful for: single tenant or non-production clusters
Benefits: lower memory overhead, simpler setup
Risk: security risk if deployed on multi-tenant cluster