Jaeger, the open source, end-to-end distributed tracing software, has become the seventh project to officially reach the graduated level of the Cloud Native Computing Foundation (CNCF) this week, joining the ranks of Kubernetes, Prometheus, Envoy, CoreDNS, containerd, and Fluentd. Jaeger first joined the CNCF in 2017, at the same time as Envoy, and now its graduation follows Envoy just a year later.
Projects at the graduated level, said Jaeger maintainer Yuri Shkuro, have received a “stamp of approval,” explaining that the graduation review process really makes sure the project is ready for production use.
“It was a fairly interesting process. The graduation criteria aren’t that difficult on the surface, but then once we started working with Matt Klein from Lyft, who was our sponsor for graduation, we went into the due diligence and there were a lot more details that we had to provide. There’s a lot of questions about the health of the project, the health of the community, the health of the technology itself, the quality of the code,” Shkuro told The New Stack. “We also did the security audit as a prerequisite, which was a fairly interesting journey to go through. The security audit revealed certain issues that we wanted to address and that was probably the biggest chunk of work.”
In all, the process from proposal to graduation took just over a month. To get to this point, however, Jaeger has spent recent years building out its features and user base, boasting 15 active maintainers, more than 1,200 contributors and 375 authors of commits and pull requests, as well as 9,000 GitHub stars, 10 million Docker Hub pulls, 2,800 Twitter followers and 815 Gitter channel members. Shkuro also highlighted the addition of different storage options and different security and authentication options — such as Kafka authentication — that have comprised “the bulk of community contributions to the backend” as well as new core features developed by the core maintainers.
According to a statement, Jaeger has completed 14 releases since starting incubation in 2017, including support for OpenTracing and alternative instrumentation APIs like Zipkin. Within the CNCF itself, Jaeger also integrates with OpenTelemetry, Envoy service proxy, and Prometheus monitoring tool. Shkuro points to this integration with OpenTracing, and later OpenTelemetry, as having allowed Jaeger maintainers to focus on building the back-end rather than instrumentation. Looking forward, Shkuro says OpenTelemetry may make it so that native Jaeger clients are no longer even necessary.
“OpenTelemetry’s standard libraries will by default come with the exporters for Jaeger, so, in theory, once there is a certain feature polarity, we may even stop developing native Jaeger clients because there wouldn’t be that much point for maintaining them anymore,” said Shkuro. “There’s going to be a generic SDK that people could use for instrumentation and that SDK will send data in any format, including the Jaeger format if we need to. I think that’s one of the big things that will be happening probably next year. Once OpenTelemetry reaches production status, we can seriously consider cutting down some of the overlap between the two projects.”
Looking to the future, Shkuro said that he thinks that having a platform and framework for data mining of traces in a programmatic way could be the next focus for the project.
“If you compare Jaeger with commercial application performance management (APM) products, it would look fairly basic, because we don’t have the resources to actually build all the fancy features,” said Shkuro. “I think there is an opportunity to build a collection of reusable data mining components that people can just use and build their own insights from the data.”
As for those traditional APM products, Shkuro said that microservices have really changed needs and that tracing is a much better fit for the age of microservices.
Microservices created, I think, “a whole new breed of problems,” Shkuor said. “That may not necessarily be in what traditional APM tools were designed for. In this new landscape of microservices and very deep systems, tracing becomes the only tool where you can get any sense of visibility into operations of those systems. The interest into [APM] was very lukewarm for quite a long time, but now a lot of people are realizing that, with these deep microservice architectures, they can’t really get away without having some sort of tracing capabilities and architecture.”
The Cloud Native Computing Foundation is a sponsor of The New Stack.