Tracing the API calls in Your Helidon Application with Jaeger

While building applications that comprises of multiple microservices, it is essential to have a mechanism in place to collect and analyze the details of API calls, timing data needed to troubleshoot latency problems and logging error generated from API calls. Jaeger is one such solution and used for monitoring and troubleshooting application built following microservice based architecture with following capabilities:
  • Distributed context propagation
  • Distributed transaction monitoring
  • Root cause analysis
  • Service dependency analysis
  • Performance / latency optimization
Jaeger is hosted by the Cloud Native Computing Foundation (CNCF) as the 7th top-level project (graduated in October 2019).

Eclipse MicroProfile, OpenTracing and Jaeger

As there are multiple tracing solutions out there similar to Jaeger(such as Zipkin), it is really good to avoid vendor lock-in by having some standardization around APIs that work with different providers.The OpenTracing addresses this part of the problem, it  a vendor-agnostic API to help developers easily instrument tracing into their code base without worrying about underlying tracing implementation. Good news is that Eclipse MicroProfile has standardized the use of OpenTracing API in the stack. You can find more details here: . In nutshell, you can switch between various tracing implementations without making any major code change in your application. The changes are limited to making some config entries in the application depending upon the tracing provider(and your  customization requirements) and then of course, using the right dependency based on the vendor.

Helidon MP and Jaeger

In this post I am sharing simple Helidon MicroProfile based  application that uses Jaeger to trace the API calls. Heres is the link to the official doc :

The complete source used for building this example is available here: . As you have noticed, this is a regular simple Helidon MP application. That said, however, a couple of things thing that you my find interesting in this example application:

How to run this example?

The detailed steps are available here: 


Post a Comment


The views expressed on this blog are my own and do not necessarily reflect the views of my employer.