Red Hat

Hawkular APM: The Future

A blog post by Gary Brown

apm | jaeger | opentracing



Since October last year, the Hawkular APM project has been actively working on supporting, and contributing to, the OpenTracing standard.

We began by implementing our own Java OpenTracing provider, followed by a Node.js/Javascript implementation. We have also been active in the OpenTracing community, developing Java framework integrations and more recently a Java Agent that can be used to automatically install those framework integrations without any changes to the application code.

However we realised that the core model used in Hawkular APM (fragments of call traces) was not particularly well aligned with the model used in OpenTracing (span based). This made it more complicated to implement client providers, as they need to build the call trace fragments from multiple spans, and it means the information stored in the server wasn’t in the same form expected by users of the OpenTracing API.

Therefore at the beginning of this year we made the decision to change the core model used by Hawkular APM to be compatible with the model used by the OpenTracing API - and essentially provide an "OpenTracing" native solution.

During the initial design meetings to discuss the proposed changes, we became aware of a blog post from Uber regarding the future of their Jaeger project. Up until that point Jaeger used the Zipkin project to provide its backend tracing solution.

This new version of Jaeger provides very similar functionality to Zipkin, which is focused on visualising individual traces. It does not have the aggregated views currently supported in Hawkular APM - however from discussions with the Jaeger project, they are keen to be able to provide aggregated views.

Therefore we have made the decision that, rather than refactor the Hawkular APM project’s model to be more OpenTracing compatible, it makes more sense to collaborate on the Jaeger project.

2017 04 19 jaeger trace
Figure 1: Individual trace captured from the Jaeger HotRod example

The current Hawkular APM codebase will still be available as an OpenTracing solution - however our intention is to focus more effort on the Jaeger project, initially with the aim of making it easy to use within OpenShift, and then adding aggregated views.




Published by Gary Brown on 19 April 2017

redhatlogo-white

© 2016 | Hawkular is released under Apache License v2.0