VOOZH about

URL: https://thenewstack.io/jaeger-vs-zipkin-battle-of-the-open-source-tracing-tools/

⇱ Jaeger vs. Zipkin: Battle of the Open Source Tracing Tools - The New Stack


TNS
SUBSCRIBE
Join our community of software engineering leaders and aspirational developers. Always stay in-the-know by getting the most important news and exclusive content delivered fresh to your inbox to learn more about at-scale software development.
REQUIRED
It seems that you've previously unsubscribed from our newsletter in the past. Click the button below to open the re-subscribe form in a new tab. When you're done, simply close that tab and continue with this form to complete your subscription.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.
Welcome and thank you for joining The New Stack community!
Please answer a few simple questions to help us deliver the news and resources you are interested in.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Great to meet you!
Tell us a bit about your job so we can cover the topics you find most relevant.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Welcome!

We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.

What’s next?

Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.

Follow TNS on your favorite social media networks.

Become a TNS follower on LinkedIn.

Check out the latest featured and trending stories while you wait for your first TNS newsletter.

PREV
1 of 2
NEXT
VOXPOP
As a JavaScript developer, what non-React tools do you use most often?
Angular
0%
Astro
0%
Svelte
0%
Vue.js
0%
Other
0%
I only use React
0%
I don't use JavaScript
0%
Thanks for your opinion! Subscribe below to get the final results, published exclusively in our TNS Update newsletter:
NEW! Try Stackie AI
From clobbered drafts to real-time sync
Apr 14th 2026 10:00am, by David Moore
TypeScript 6.0 RC arrives as a bridge to a faster future
Mar 14th 2026 9:00am, by Darryl K. Taft
Mastra empowers web devs to build AI agents in TypeScript
Jan 28th 2026 11:00am, by Loraine Lawson
2020-10-15 06:00:25
Jaeger vs. Zipkin: Battle of the Open Source Tracing Tools
contributed,sponsor-thundra,sponsored,sponsored-post-contributed,
Observability / Serverless

Jaeger vs. Zipkin: Battle of the Open Source Tracing Tools

Zipkin and Jaeger are open source tools that make distributed computing and microservice-based architectures easier to monitor and manage.
Oct 15th, 2020 6:00am by Serkan Özal
👁 Featued image for: Jaeger vs. Zipkin: Battle of the Open Source Tracing Tools
Feature image via Pixabay.
Thundra sponsored this post.
Serkan Özal
Serkan is co-founder and CTO of Thundra. He has 10+ years of expertise in software development, is an AWS Certified PRO and has a patent on distributed environments. He mainly works on serverless architectures, distributed systems and monitoring tools.

Often the mark of a revolutionary idea is that at first, it seems totally stupid. Take Twitter: in 2006 when the service launched, most people had a hard time seeing its potential. To make matters worse, Twitter was not only weird, it was also unreliable. Twitter was a killer app for the mobile generation, but its backend systems couldn’t handle its sudden popularity and massive adoption. At the time, most backend software was written as a monolithic application; not only were these systems fragile, but they were hard to extend and maintain.

In order to create more resilient and scalable systems, online services adopted distributed architectures that decomposed into microservices. Like many revolutionary ideas, this both solved existing problems and created a number of new ones.. Specifically, microservices that operate in highly dispersed environments are much harder to monitor and debug.

In this article, we’ll examine two tools, Zipkin and Jaeger, that are designed to make distributed computing and microservice-based architectures easier to monitor and manage. We’ll look at what these tools provide, their strengths and weaknesses, and we’ll make recommendations on why you should choose one or the other.

Observability: A Brave New World

Before we look at the tools, let’s take a deeper look at the problem and at the philosophy behind its solution. A monolithic application is like an old car: as soon as it starts making weird noises or something feels wrong, most of us can figure out what is wrong. If we have enough experience, we then dive under the hood and fix it. But a distributed system is more like a modern car: it will tell you something is wrong, but it gives you no indication of how to fix it without specialized tools or knowledge.

Thundra Foresight empowers developers to build successful CI pipelines by providing deep analytics and debugging capabilities. With observability into the CI process, Thundra Foresight helps optimize build duration, enable more frequent deployments, increase productivity, and lower CI costs.
Learn More
The latest from Thundra

Microservices enable you to build dispersed systems with high levels of redundancy that also offer high levels of scalability and reliability. However, their small size, interconnected nature, and high redundancy make system issues harder to locate, debug and fix. Furthermore, existing monitoring and logging software was developed for monolithic applications.

Distributed architectures, like your current car, are black boxes. Both can be monitored through what engineers call observability, which lets you infer the internal state of an observed system by collecting and observing its inputs and outputs. For example, when a warning light goes off on your dashboard, your mechanic will hook it up to a computer that reads the relevant input and output data.

In the virtual world, distributed tracing is used to make a system observable using platforms such as OpenTracing, OpenCensus, and OpenTelemetry. These platforms let you track and record requests from their point of origin to their destination and the systems through which they pass. Once you have a solution in place, you’ll need tools like Zipkin and Jaeger to manage and process the collected data.

Background and Features

As with the best families, the rivalry between Zipkin and Jaeger originates in their shared history. Zipkin, which predates Jaeger, is an open source version of Google’s Dapper that was further developed by Twitter. At its core, Zipkin is a Java-based application that provides a number of services. Each service implements Zipkin’s feature set and includes a user interface and interfaces for tracing frameworks. Each service also provides a range of storage engines to persist recorded data — such as an in-memory database, MySQL, Cassandra, and Elasticsearch.

In addition, Zipkin provides transport mechanisms — such as RabbitMQ, Scribe, HTTP, and Kafka — and a node-based server for storing data in Cassandra. Even if Zipkin doesn’t currently meet your needs, it does provide libraries for most popular high-level languages — including C#, Java, and JavaScript.

Jaeger was created by Uber and was written in Go. It’s similar to, but also different from, its older sibling. In addition to Zipkin’s feature set, Jaeger also provides dynamic sampling, a REST API, a ReactJS-based UI, and support for Cassandra and Elasticsearch in-memory datastores. To implement these features, Jaeger takes a different, more distributed approach than Zipkin.

Jaeger’s architecture includes a client that emits traces to an agent, which listens for inbound spans and routes them to the collector. The collector then validates, transforms and persists spans. Jaeger’s distributed architecture makes it highly scalable. Jaeger also has a unique way of collecting data: unlike other systems that try to collect every trace and span generated, Jaeger takes a dynamic representative sample of the monitored data. This approach not only handles sudden surges in traffic, but increases Jaeger’s overall performance.

Compare and Contrast

Let’s start with the positives. Zipkin, being older, is the more mature platform. It has broad industry support and a large and active community. Zipkin was written in Java, making it a good fit for enterprise environments. However, it also supports most of the popular high-level languages, which is good if you don’t know or don’t like Java. No matter what your language of choice, Zipkin supports OpenTracing, OpenCensus and OpenTelemetry — the big three open tracing frameworks — and has a wide range of extensibility options and tool integrations.

Jaeger is broadly similar to its older sibling but has some unique features of its own. For a start, it has a more modern design and architecture. Its more-distributed approach is highly flexible and performant. Jaeger gives you a web-based (React) UI that you can easily deploy and extend.

The Jaeger community compensates for Jaeger’s relative lack of maturity by providing good documentation and a range of deployment options. Jaeger also has Cloud Native Computing Foundation support (CNCF); and while this is more of a recommendation than a standard, it should be taken into account.

Let’s turn our attention to the negative aspects of each tool. Because Zipkin is the older of the two, its older design uses a less modular and more centralized architecture — which makes it slower and less flexible than its newer rival. While this difference may not matter for smaller systems, as your system starts to grow or needs to quickly scale, it may become an issue. Zipkin’s less modular design, which lacks the flexibility of newer approaches, may affect its overall performance.

Zipkin’s core components were written in Java, which is great for any organization that values stability more than performance. As a result, if your system goes down or loses power, you will lose all your recorded data. Zipkin offers many libraries for the big languages, but no official support for popular languages such as Python, Ruby, and PHP.

Jaeger might be newer, but that doesn’t necessarily mean it’s better. In fact, many people — especially in enterprise IT — will look at Jaeger’s relative immaturity as a disadvantage. Jaeger’s choice of Go as its main language illustrates this point. Go was written as a system language, but it’s far less popular than Java; and that means you might have to learn a new language, rather than going with one you know.

Another area that is both a blessing and a curse for Jaeger is its more modern architecture. This architecture offers benefits in terms of performance, reliability and scalability, but it’s also far more complex and harder to maintain. Jaeger also shares the same ephemeral, in-memory storage issues as Zipkin, plus its API lacks Zipkin support.

Zipkin or Jaeger: Which Is Right for You?

Before we give our recommendations, let’s summarize what Zipkin and Jaeger offer and their strengths and weaknesses. In choosing one or the other, you should also take into account your organization’s structure, its monitoring needs, and its in-house technical expertise. In addition, you should decide whether your organization and team prefer newer or more mature technologies.

Both tools are good options for collecting and managing distributed tracing data. They are both remarkably similar, evenly matched, and will do the job; and they both support distributed tracing libraries, OpenCensus, OpenTracing and OpenTelemetry. In addition, Zipkin and Jaeger have a wide range of extensibility options and tool integration, and both support virtualization and containerization. Both tools rely on in-memory storage and face similar issues with data loss.

For those who don’t want to live on the bleeding edge, Zipkin is the better choice. It’s more mature and has a bigger and more mature community. Zipkin has wide industry support, and its Java roots make it suitable for the world of enterprise IT (where Java still rules).

What Jaeger lacks in maturity, it makes up for in speed and flexibility, and its newer, more dispersed parallel architecture. It’s also more performant and easier to scale. Jaeger has better official language support than its older rival, and you can also look at its CNCF support as a badge of approval.

Thundra Foresight empowers developers to build successful CI pipelines by providing deep analytics and debugging capabilities. With observability into the CI process, Thundra Foresight helps optimize build duration, enable more frequent deployments, increase productivity, and lower CI costs.
Learn More
The latest from Thundra
TRENDING STORIES
Serkan Özal is co-founder and CTO of Thundra. He has 10+ years of expertise in software development, is an AWS Certified PRO and has a patent on distributed environments. He mainly works on serverless architectures, distributed systems and monitoring tools.
Read more from Serkan Özal
Thundra sponsored this post.
SHARE THIS STORY
TRENDING STORIES
The Cloud Native Computing Foundation is a sponsor of The New Stack.
TNS owner Insight Partners is an investor in: Pragma.
SHARE THIS STORY
TRENDING STORIES
TNS DAILY NEWSLETTER Receive a free roundup of the most recent TNS articles in your inbox each day.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.