Jaeger is an open-source distributed tracing system by Uber Technologies. Like Dapper or Zipkin, it is used for monitoring and troubleshooting microservices-based distributed systems. In this post, we are going to look at how to deploy Jaeger to the Kubernetes cluster.
This quickstart assumes a basic understanding of Kubernetes concepts, please refer to earlier posts for understanding on Kubernetes & how to create, deploy & rollout updates to the cluster.
Quick Snapshot
In the Microservices architecture, the application is usually structured as a set of loosely coupled, collaborating services. Each service implements a set of related functions. For example, an application might consist of services such as the order management service, the customer management service, etc. Services communicate using either synchronous protocols such as HTTP/REST or asynchronous protocols such as AMQP. Services can be developed and deployed independently of one another. Each service has its own database in order to be decoupled from other services. For more intro on Microservice architecture, check out here.
Service requests often span multiple services. Each service handles a request by performing one or more operations, e.g. database queries, publishes messages, etc. To understand the behavior of an application and troubleshoot problems there is a need to monitor each service but if you use any of the external monitoring tools, it only tells you the overall response time and number of invocations but there would be no insight into the individual operations. To understand how each service is performing we would need to instrument services with code that will do the following
So this where Jaeger can help us, it supports the OpenTracing initiative and can be used for monitoring microservices-based distributed systems:
Following are the Key components of Jaeger
An instrumented service creates spans when receiving new requests and attaches context information (trace id, span id, and baggage) to outgoing requests. This instrumentation has very little overhead and is designed to be always enabled in production.
Span represents a logical unit of work in Jaeger that has an operation name, the start time of the operation, and the duration. Spans may be nested and ordered to model causal relationships. Trace is a data/execution path through the system and can be thought of as a directed acyclic graph of spans.
In the next section, we will learn how to deploy Jaeger on the Kubernetes cluster.
Assuming you already have the Kubernetes cluster ready, Deploying Jaeger is just a simple 1-step procedure. If you want to set up the Kubernetes cluster and get a basic understanding of Kubernetes concepts, please refer to earlier posts for understanding on Kubernetes & how to create, deploy & rollout updates to the cluster.
Execute kubectl create
deployment on your cluster. What I have is just a sample template and not to be used in a production environment.
kubectl create -f https://raw.githubusercontent.com/jaegertracing/jaeger-kubernetes/master/all-in-one/jaeger-all-in-one-template.yml
Post Kubectl create
command, you can use Kubectl get
command to see the deployments.
Use kubectl get service jaeger-query
to find Jaeger URL.
To understand what we have accomplished, the Jaeger template has instrumented services with code that will do the following
Congrats! today we have learned what is Jaeger tracing & how to do deploy it to the Kubernetes cluster.
If you’re looking to run along with Helm, check out, here.
Like this post? Don’t forget to share it!
There are few things as valuable to a business as well-designed software. Organizations today rely…
The cryptocurrency industry is being reshaped by the fusion of blockchain technology and artificial intelligence…
Introduction Artificial Intelligence (AI) has also found its relevance in graphic design and is quickly…
Imagine a world where the brilliance of Artificial Intelligence (AI) meets the unbreakable security of…
In today’s fast-paced digital landscape, automation is not just a luxury but a necessity for…
The world of casino gaming has leveraged the emerging technology advancements to create immersive and…
This website uses cookies.