Skip to content

v2.0.0-M1 - Almost complete API for Kamon 2.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@ivantopo ivantopo released this 25 Apr 21:17
· 2687 commits to master since this release

This is the first public milestone of what will become Kamon 2.0 and the results of months of gather feedback, testing and cleaning up what we built on Kamon 1.0 🎉

We will save the super detailed list of changes for when 2.0 gets released, but lets at least point to some of the most relevant changes since Kamon 1.1:

  • We got a new abstraction to handle tags: the TagSet. Cool thing about it is that it can handle key/value pairs where the values can be a String, Long or Boolean, and provides a convenient API to access the tag values while still ensuring type safety. And, of course, now we are using TagSets for all tags we need to have: metric tags, span tags, context tags and environment tags! This was introduced via #572
  • The Context got tags! Since it is extremely useful for users to have a quick and convenient way of defining key/value pairs that should be propagated with the Context, without having to provide any sort of serialization setup or code, we introduced Context tags via #552 (note: the HTTP server instrumentation on that PR got moved to a separate project).
  • We got a huge refresh on the metrics API. Even though generally speaking things are very similar, the internal implementation was revamped and the user-facing API now provides easy-to-add auto updates and tagging on metrics. This was done via #574
  • The Tracer also got a refresh where we exposed the Span APIs more cleanly, removed some of the legacy stuff we had from the OpenTracing days and we introduced a new adaptive sampler! This was done via #576
  • We made Kamon able to discover and start modules from the classpath, something that was really useful back on the Kamon 0.6 days and that we never got to migrate, the wait is over! This was done via #559
  • There is a new Status Page module in Kamon which starts an embedded web server with a single page app that can be used to see what modules, metrics and instrumentation modules are currently being tracked by Kamon. This was introduced via #569

We will spend the following days updating the instrumentation and reporting modules, preparing for the new Kamon Bundle packaging and getting ready for the release. We do not expect to introduce any breaking changes from now on, unless it is necessary to address or fix issues we find while going through the modules jungle.