Dear users, Kamon 0.5.0 is out! Lots of community contributions, support for Play! 2.4, reporting of any metrics to New Relic (including Akka-related metrics) and a new Sematext SPM module are some of the highlights of this release!

Before getting into more specific details, we would like to thank the nice, warm and continually growing Kamon community for all sorts of contributions that we received during the last few months. We got lots of constructive critics, pull requests fixing bugs that we didn’t know we had or adding new features and even a new module! It has been really amazing to see that sometimes a user posts a question via the mailing list/Gitter/Github and some other user shares it’s experiences and solutions before we even get to see it. That might be normal for bigger projects, but for us it is a new and extremely rewarding experience that we hope keeps repeating over time. Thanks for all the support, good vibes and kind words, you all rock!

Each and every contribution is important for us, and we are very grateful to receive them and make them part of Kamon, but with this release we would like to make a special mention of the following contributions:

Nils-Helge Garli Hegvik fixed an ugly memory leak we had when removing entities that had a min-max-counter on them, which is very common if you are using Akka. Depending on your application’s behavior you might or might not be affected by this but, thankfully it is now fixed for good.

Sallé Tristan not only fixed a couple bugs and added a new feature to Kamon, but also is working in a kamon-zipkin module that definitely should be looked at by all of you.

Slava Schmidt improved ouw New Relic module so that now any metric can be reported as a Custom Metric to New Relic, and by “any” we mean any including metrics generated by the kamon-akka module.

Pavel Zalunin from Sematext contributed the new kamon-spm module, which as you might guess allows you to push metrics data to the Sematext Performance Monitor platform. This contribution is particularly special to us, given the fact that thi is the first time that a commercial entity in the performance monitoring sector takes the first step to integrate with Kamon, and they did it so cleanly that we didn’t even have to ask any changes to the PR, it was just perfect. We sincerely hope that more companies follow the steps of Sematext in this matter.

We also worked on bringing support for Play! Framework 2.4, but in order to support it we had to create a new module and to avoid any sort of confusion with regards to what module should you include in your project, instead of publishing the kamon-play module we are now publishing kamon-play-23 and kamon-play-24 for Play! 2.3.x and 2.4.x respectively.

Finally, sooner than expected we are dropping support for Akka 2.2 with this release. Yes, we said that we would keep support for Akka 2.2 until Akka 2.4 becomes available, but that was going to slow us down too much and the number of downloads for those modules are very very low.

Here is the full list of changes that you can also check on out changelog section:

  • kamon-core
    • Ensure that the TraceLocalStorage can be used from Java (see issue 196).
    • Memory leak when removing entities with MinMaxCounter (see issue 227).
    • Introduce new Sampler clock-sampler (see pull 208).
    • Fix ordered-sampler (see pull 201).
    • Fix usage of GaugeKey for gauges in MetricsModule (see pull 198).
    • Allow creation of counters with units (see pull 236).
    • Allow custom kamon.trace.token-generator (see pull 223).
    • The withNewAsyncSegment method actually evaluates the supplied code twice (see issue 204).
  • kamon-akka
    • NPE when initializing a balancing-pool router from configuration (see issue 199).
    • Avoid runtime exceptions logged on ActorCell shutdown (see pull 220).
    • Change map to foreach for side-effecting behaviour on Option (see pull 212).
  • kamon-play
    • Play trace name for emulated HEAD requests (see issue 237).
    • Create a Play(2.4) module for manage the lifecycle of kamon (see issue 169).
  • kamon-spray
    • Memory leak with Spray (see issue 213).
    • Fix segment finishing on errors (see pull 205).
  • kamon-newrelic
    • Newrelic is not subscribing to single-instrument entities (see issue 197).
    • Remove compile dependency from kamon-newrelic to kamon-testkit (see pull 231).
    • Add possibility to send akka metrics to the Newrelic (see pull 228).
  • kamon-system-metrics
    • Split/Allow disabling of system sigar and JVM JMX metrics in system-metrics module (see issue 234).
    • SigarNotImplementedException exceptions on windows 7 (see issue 235).
  • kamon-spm
    • This new module send Kamon Akka metrics to SPM (see pull 240).

Now go and have some fun with Kamon 0.5.0!