* [Topics](/en/topics "Topics")
* What is Jaeger?
What is Jaeger?
===============
Published  November 11, 2019•*4*-minute read
Copy URL
Jump to section
---------------
OverviewWhat is distributed tracing?Open source communityHow Jaeger worksUse casesDistributed tracing and Red Hat
Overview
--------
Jaeger is open source software for tracing transactions between distributed services. It’s used for monitoring and troubleshooting complex [microservices](/en/topics/microservices/what-are-microservices) environments.
What is distributed tracing?
----------------------------
Distributed tracing is a way to see and understand the whole chain of events in a complex interaction between microservices.
Modern, [cloud-native](/en/topics/cloud-native-apps) software development relies on [microservices](/en/topics/microservices/what-are-microservices): independent services that each provide a different core function. When a user makes a request in an app, many individual services respond to produce a result.
A single call in an app can invoke dozens of different services that interact with each other. How can developers and engineers isolate a problem when something goes wrong or a request is running slow? We need a way to keep track of all the connections.
That’s where distributed tracing comes in. It’s often run as part of a service mesh, which is a way to manage and observe microservices.
Jaeger uses distributed tracing to follow the path of a request through different microservices. Rather than guessing, we can see a visual representation of the call flows.
Organized information about transactions is useful for debugging and optimization. Jaeger includes tools to monitor distributed transactions, optimize performance and latency, and perform root cause analysis (RCA), a method of problem solving.
[Get started with Red Hat OpenShift Service Mesh](/en/topics/microservices/what-is-a-service-mesh)
Red Hat resources
-----------------
[Keep reading](/en/resources "Keep reading")
Jaeger’s open source community
------------------------------
As an [open source](/en/topics/open-source/what-is-open-source) project, Jaeger benefits from a community of hundreds of contributors. Jaeger is based on the vendor-neutral OpenTracing APIs and instrumentation.
Ridesharing company Uber developed [Jaeger](https://www.jaegertracing.io/) as an open source project in 2015. It was accepted as a Cloud Native Computing Foundation (CNCF) Incubation project in 2017 and promoted to graduated status in 2019.
How does Jaeger work?
---------------------
Jaeger collects, stores, and visualizes “traces” from distributed systems, providing insights into how requests flow through a system, where time is spent, and where errors occur.
Jaeger presents execution requests as **traces**. A trace shows the data/execution path through a system.
A trace is made up of one or more **spans**. A span is a logical unit of work in Jaeger–such as a database query or HTTP request. Each span includes the operation name, start time, and duration. Spans may be nested and ordered.
### Jaeger’s process
Jaeger works by tracing the executions of an operation across a distributed system and tasking specific routines to several components of Jaeger.
The OpenTelemetry SDK can be used in any programming language and then exported to a format Jaeger  or other tracing platform understands.
Once in operation, Jaeger follows this process:
1. Jaeger tracing begins with **instrumenting** an application. Instrumenting modifies an application's code to generate traces. Instrumentation can be manual, using Jaeger client libraries available for various programming languages, or automatic, using middleware and frameworks that support OpenTracing or OpenTelemetry APIs.
2. When the application runs, the traces provide a detailed execution path of an operation across microservices. Each trace consists of multiple spans, where each span contains information such as the operation name, start and end time, and key-value pair tags that provide additional context (e.g., HTTP status codes, error messages).
3. To link spans together into a single trace, Jaeger passes identifiers and other trace context between services as part of requests and responses. This is known as **context propagation**. Each span and trace has a unique ID which allows individual components of a request's journey to be pieced together.
4. Spans are collected using Jaeger client libraries and sent to the **Jaeger Agent** which is usually deployed alongside the application or as a daemonset in environments like Kubernetes.
5. The **Jaeger Collector** receives the spans from the Jaeger Agent and stores them in a backend database. Jaeger supports several storage options, such as Elasticsearch, Cassandra, or Google Cloud Bigtable, allowing for scalability and flexibility in how trace data is managed.
6. The **Jaeger Query** service provides a UI for users to search and visualize traces. The Jaeger UI allows developers and operators to explore the details of individual traces, visualize the span hierarchy and timings, and analyze system behavior and performance.
7. **Jaeger Console** is a user interface that lets you visualize your distributed tracing data to gain insights into: latency issues, error analysis, dependency analysis, and performance optimization.
Use cases for Jaeger
--------------------
Jaeger provides insights into the behavior of microservices and requests through a distributed system. As such, it can provide the following:
1. **Performance optimization:** Jaeger can pinpoint where delays are occurring within a series of microservices as well as providing visualization on how services interact and depend on each other to help optimize resource allocation.
2. **Root cause analysis:** Jaeger traces track a service failure or unexpected result back to its origin to assist in quick resolution. Additionally, Jaeger can be integrated with monitoring systems to alert teams when unusual patterns emerge, such as spikes in latency or error rates.
3. **Security and compliance:** As they show how data flows through a system, traces can serve as a form of audit trail which is crucial for compliance with regulatory requirements concerning data handling and processing.
4. **Development and testing:** Developers can perform Jaeger tracing in local environments allowing them to detect errors, latency and dependency issues before deploying an application.
Distributed tracing and Red Hat
-------------------------------
[Red Hat ® OpenShift ® Observability](/en/technologies/cloud-computing/openshift/observability) is a comprehensive set of observability capabilities that provides deep insights into the performance and health of OpenShift-based applications and infrastructure. A feature of Red Hat’s observability stack is distributed tracing which until 2024 included Jaeger. In early 2024, Red Hat deprecated Jaeger and Elasticsearch in favor of the Tempo Operator and the Red Hat build of [OpenTelemetry](/en/blog/what-is-opentelemetry).
The Red Hat build of OpenTelemetry can be used to collect traces in many formats, not only coming from Jaeger clients, but also zipkin and OpenTelemetry Protocol (OTLP). That’s only the beginning as this collector can be used to collect all your observability signals. Red Hat’s latest releases of distributed tracing encompasses numerous enhancements. In addition to implementing automatic metrics generation from spans, it enables the creation of alerts based on these metrics. To help Prometheus stack integration, we have added the Target Allocator component to our build, which enables customers to scrape Prometheus endpoints effortlessly and efficiently manage and scale.
Tempo serves as a drop-in replacement for the distributed tracing storage and visualization capabilities provided by the Jaeger product. It facilitates simple local deployments for experimenting with distributed tracing or for swiftly troubleshooting deployments that do not require extensive tracing storage as well as large deployments. Tempo still incorporates the Jaeger User Interface, guaranteeing smooth visualization of traces.
[Discover OpenShift’s components and capabilities](/en/resources/self-managed-openshift-subscription-guide)
The official Red Hat blog
-------------------------
Get the latest information about our ecosystem of customers, partners, and communities.
[Keep reading](/en/blog "The official Red Hat blog")
All Red Hat product trials
--------------------------
Our no-cost product trials help you gain hands-on experience, prepare for a certification, or assess if a product is right for your organization.
[Keep reading](/en/products/trials "All Red Hat product trials")
Keep reading
------------
### What is KVM?
Kernel-based virtual machines (KVM) are an open source virtualization technology that turns Linux into a hypervisor.
[Read the article](/en/topics/virtualization/what-is-KVM "article | what is KVM?")
### Ansible vs. Puppet: What you need to know
Ansible and Puppet are community open source IT automation tools. This article will help explain the similarities and differences between Ansible and Puppet in greater detail.
[Read the article](/en/topics/automation/ansible-vs-puppet "article | ansible vs puppet")
### Ansible vs. Salt: What you need to know
Ansible and Salt are community open source IT automation tools. This article will help explain the similarities and differences between Ansible and Salt in greater detail.
[Read the article](/en/topics/automation/ansible-vs-salt "article | ansible vs salt")
Open source resources
---------------------
### Related content
* Analyst material
  [Open Source Hybrid Cloud: Europe's Strategic Lever in the Age of Digital Sovereignty](/en/resources/idc-hybrid-cloud-digital-sovereignty-analyst-material)
* Analyst material
  [Open Source Hybrid Cloud: Europe's Strategic Lever in the Age of Digital Sovereignty](/en/engage/idc-hybrid-cloud-digital-sovereignty-analyst-material)
* Blog post
  [Save the date: Red Hat Summit 2027 is coming to Boston](/en/blog/save-date-red-hat-summit-2027-coming-boston)
* Blog post
  [Hardened, ready, and no cost: Container security evolved](/en/blog/red-hat-hardened-images)
### Related articles
* [What is KVM?](/en/topics/virtualization/what-is-KVM)
* [What is an image builder?](/en/topics/linux/what-is-an-image-builder)
* [Red Hat OpenShift for developers](/en/technologies/cloud-computing/openshift/developers)
* [What is a Linux container?](/en/topics/containers/whats-a-linux-container)
* [Why choose Red Hat for Kubernetes?](/en/topics/containers/why-choose-red-hat-kubernetes)
* [What is Linux?](/en/topics/linux/what-is-linux)
* [What is CaaS?](/en/topics/cloud-computing/what-is-caas)
* [Ansible vs. Chef: What you need to know](/en/topics/automation/ansible-vs-chef)
* [Ansible vs. Puppet: What you need to know](/en/topics/automation/ansible-vs-puppet)
* [Ansible vs. Salt: What you need to know](/en/topics/automation/ansible-vs-salt)
* [Ansible vs. Terraform](/en/topics/automation/ansible-vs-terraform)
* [What is Podman?](/en/topics/containers/what-is-podman)
* [What is Podman Desktop?](/en/topics/containers/what-is-podman-desktop)
* [Containers vs. VMs: Similarities, differences, and combined approaches](/en/topics/containers/containers-vs-vms)
* [Edge computing with Red Hat OpenShift](/en/technologies/cloud-computing/openshift/edge-computing)
* [What is InstructLab?](/en/topics/ai/what-is-instructlab)
* [What is container orchestration?](/en/topics/containers/what-is-container-orchestration)
* [What is Istio?](/en/topics/microservices/what-is-istio)
* [What is CentOS Stream?](/en/topics/linux/what-is-centos-stream)
* [Stateful vs stateless applications](/en/topics/cloud-native-apps/stateful-vs-stateless)
* [What is Kubernetes?](/en/topics/containers/what-is-kubernetes)
* [Red Hat OpenShift on VMware](/en/technologies/cloud-computing/openshift/vmware)
* [What is KubeVirt?](/en/topics/virtualization/what-is-kubevirt)
* [Why use Red Hat Ansible Automation Platform with Red Hat OpenShift?](/en/technologies/cloud-computing/openshift/ansible-on-openshift)
* [What are CentOS replacements?](/en/topics/linux/centos-alternatives)
* [What is CentOS?](/en/topics/linux/what-is-centos)
* [What are hosted control planes?](/en/topics/containers/what-are-hosted-control-planes)
* [What is the Kubernetes Java client?](/en/topics/cloud-computing/what-is-kubernetes-java-client)
* [What is kubernetes security?](/en/topics/containers/kubernetes-security)
* [What is Helm?](/en/topics/devops/what-is-helm)
* [What is Argo CD?](/en/topics/devops/what-is-argocd)
* [What is MicroShift?](/en/topics/edge-computing/microshift)
* [How Kubernetes can help AI/ML](/en/topics/cloud-computing/how-kubernetes-can-help-ai)
* [OpenJDK versus Oracle JDK](/en/topics/application-modernization/openjdk-vs-oracle-jdk)
* [What is Cloud Foundry?](/en/topics/application-modernization/what-is-cloud-foundry)
* [What is Kubeflow?](/en/topics/cloud-computing/what-is-kubeflow)
* [What are microservices?](/en/topics/microservices/what-are-microservices)
* [What is container security?](/en/topics/security/container-security)
* [OpenShift vs. OpenStack: What are the differences?](/en/technologies/cloud-computing/openshift/openshift-vs-openstack)
* [What are sandboxed containers](/en/topics/containers/sandboxed-containers)
* [What is Buildah?](/en/topics/containers/what-is-buildah)
* [Kubernetes vs OpenStack](/en/topics/openstack/kubernetes-vs-openstack)
* [What are validated patterns?](/en/topics/cloud-computing/what-are-validated-patterns)
* [Understanding Ansible, Terraform, Puppet, Chef, and Salt](/en/topics/automation/understanding-ansible-vs-terraform-puppet-chef-and-salt)
* [Kubernetes on AWS: Self-Managed vs. Managed Applications Platforms](/en/topics/containers/kubernetes-on-aws)
* [What's the best Linux distro for you?](/en/topics/linux/whats-the-best-linux-distro-for-you)
* [Red Hat OpenShift vs. OKD](/en/topics/containers/red-hat-openshift-okd)
* [Red Hat OpenShift vs. Kubernetes: What's the difference?](/en/technologies/cloud-computing/openshift/red-hat-openshift-kubernetes)
* [Why run Apache Kafka on Kubernetes?](/en/topics/integration/why-run-apache-kafka-on-kubernetes)
* [What is high availability and disaster recovery for containers?](/en/topics/containers/high-availability-containers)
* [What is Apache Kafka?](/en/topics/integration/what-is-apache-kafka)
* [Spring on Kubernetes with Red Hat OpenShift](/en/technologies/cloud-computing/openshift/spring)
* [What is a golden image?](/en/topics/linux/what-is-a-golden-image)
* [Ansible vs. Red Hat Ansible Automation Platform](/en/technologies/management/ansible/ansible-vs-red-hat-ansible-automation-platform)
* [What are Red Hat OpenShift cloud services?](/en/technologies/cloud-computing/openshift/what-are-red-hat-openshift-cloud-services)
* [VNF and CNF, what’s the difference?](/en/topics/cloud-native-apps/vnf-and-cnf-whats-the-difference)
* [What is a container registry?](/en/topics/cloud-native-apps/what-is-a-container-registry)
* [What is Skopeo?](/en/topics/containers/what-is-skopeo)
* [What are Red Hat OpenShift Operators?](/en/technologies/cloud-computing/openshift/what-are-openshift-operators)
* [Using Helm with Red Hat OpenShift](/en/technologies/cloud-computing/openshift/helm)
* [Kubernetes security best practices](/en/topics/containers/kubernetes-security-best-practices)
* [What is Grafana?](/en/topics/data-services/what-is-grafana)
* [Orchestrating Windows containers on Red Hat OpenShift](/en/technologies/cloud-computing/openshift/windows-containers-on-red-hat-openshift)
* [What is open source software?](/en/topics/open-source/what-is-open-source-software)
* [What is a Kubernetes operator?](/en/topics/containers/what-is-a-kubernetes-operator)
* [Open source vs. proprietary software in vehicles](/en/topics/open-source/open-source-vs-proprietary-software-in-vehicles)
* [High performance computing with Red Hat OpenShift](/en/technologies/cloud-computing/openshift/high-performance-computing)
* [Advantages of Kubernetes-native security](/en/topics/containers/advantages-of-kubernetes-native-security)
* [What is KubeLinter?](/en/topics/containers/what-is-kubelinter)
* [Intro to Kubernetes security](/en/topics/containers/intro-kubernetes-security)
* [Container and Kubernetes compliance considerations](/en/topics/containers/compliance)
* [How microservices support IT integration in healthcare](/en/topics/microservices/microservices-in-healthcare)
* [Kubernetes cluster management](/en/technologies/cloud-computing/openshift/kubernetes-cluster-management)
* [Red Hat OpenShift on IBM IT infrastructure](/en/technologies/cloud-computing/openshift/what-is-red-hat-openshift-on-IBM-IT-infrastructure)
* [Red Hat OpenShift for business leaders](/en/technologies/cloud-computing/openshift/business-leaders)
* [How to deploy Red Hat OpenShift](/en/technologies/cloud-computing/openshift/deploy-red-hat-openshift)
* [Cost management for Kubernetes on Red Hat OpenShift](/en/technologies/cloud-computing/openshift/cost-management)
* [What is enterprise Kubernetes?](/en/topics/containers/what-is-enterprise-kubernetes)
* [What is RKT?](/en/topics/containers/what-is-rkt)
* [What makes Red Hat OpenShift the right choice for IT operations?](/en/technologies/cloud-computing/openshift/it-operations)
* [What makes Red Hat OpenShift the right choice for SAP?](/en/technologies/cloud-computing/openshift/sap)
* [Kubernetes-native Java development with Quarkus](/en/technologies/cloud-computing/openshift/quarkus)
* [What is Kubernetes role-based access control (RBAC)](/en/topics/containers/what-kubernetes-role-based-access-control-rbac)
* [What is Kogito?](/en/topics/automation/what-is-kogito)
* [What is containerization?](/en/topics/cloud-native-apps/what-is-containerization)
* [What was CoreOS and CoreOS container Linux](/en/technologies/cloud-computing/openshift/what-was-coreos)
* [Learning Kubernetes basics](/en/topics/containers/learning-kubernetes-tutorial)
* [What is service-oriented architecture?](/en/topics/cloud-native-apps/what-is-service-oriented-architecture)
* [What is the Kubernetes API?](/en/topics/containers/what-is-the-kubernetes-api)
* [What is Kubernetes cluster management?](/en/topics/containers/what-is-kubernetes-cluster-management)
* [What is a Kubernetes deployment?](/en/topics/containers/what-is-kubernetes-deployment)
* [Why choose the Red Hat build of Quarkus?](/en/topics/cloud-native-apps/why-choose-red-hat-quarkus)
* [Introduction to Kubernetes architecture](/en/topics/containers/kubernetes-architecture)
* [Introduction to Kubernetes patterns](/en/topics/cloud-native-apps/introduction-to-kubernetes-patterns)
* [What is a Kubernetes cluster?](/en/topics/containers/what-is-a-kubernetes-cluster)
* [What is Quarkus?](/en/topics/cloud-native-apps/what-is-quarkus)
* [What is open source?](/en/topics/open-source/what-is-open-source)
* [What is container-native virtualization?](/en/topics/containers/what-is-container-native-virtualization)
* [What is Clair?](/en/topics/containers/what-is-clair)
* [What is Knative?](/en/topics/microservices/what-is-knative)
* [What is etcd?](/en/topics/containers/what-is-etcd)
* [Why choose Red Hat for microservices?](/en/topics/microservices/why-choose-red-hat-microservices)
* [Why choose Red Hat for containers?](/en/topics/containers/why-choose-red-hat-containers)
* [What is Docker?](/en/topics/containers/what-is-docker)
* [What is a Kubernetes pod?](/en/topics/containers/what-is-kubernetes-pod)
[More about this topic](/en/topics/open-source "More about this topic")