Releases: kamon-io/Kamon
v2.2.3 - Rediscala instrumentation
- kamon-redis: Add tracing for the rediscala library. Contributed by @SimunKaracic #1052
- kamon-jdbc: Add SQL parsing to get better operation names. Disabled by default because the performance impact is yet unclear. If you'd like to test it and report back, set
kamon.instrumentation.jdbc.parse-sql-for-operation-nametotrue. Contributed by @Falmarri via #1013
v2.2.2 - Kamon-caffeine and various improvements
- kamon-opentelemetry: added missing span marks to otel exporter. Contributed by @pnerg via #1047
- kamon-core: Repair W3C span propagation, now with way more spec compliance. Contributed by @SimunKaracic, @the-overengineer and @dguggemos via #1045.
- kamon-system-metrics: Bump
oshi-coreto latest version. Contributed by @SimunKaracic via #1045 - kamon-caffeine: new module adding instrumentation for Caffeine synchronous caches. Tracing is done automatically, and for cache metrics, KamonStatsCounter is available, which needs to be added manually. Contributed by @SimunKaracic via #1051
v2.2.1 - Lettuce instrumentation
- kamon-datadog: Truncate 128-bit trace IDs before reporting to DataDog. Contributed by @dvgica via #1040. Fixes #1032
- kamon-bundle: Ensure that the temporary Kanela agent file extracted by the Bundle will be deleted after the JVM exits. Contributed by @ivantopo via #1036
- kamon-jdbc: Add support for HyperSQL. Contributed by @ivantopo via #1041
- kamon-jdbc: Bump hikariCP to the latest version. Contributed by @SimunKaracic via #1039
- kamon-status-page: Try to bind Status Page on a different port if the configured port is busy. Contributed by @ivantopo via #1042
- kamon-redis: Add tracing for the lettuce library. Contributed by @SimunKaracic via #1037
v2.2.0 - Future Instrumentation Rollback
🚨 This release changes the instrumentation behavior for Scala Futures 🚨
This release changes the way Kamon instruments Scala Futures, going back to the same behavior we had in Kamon 1.x. This change is going to be transparent for most users because most of them only use the automatic instrumentation, but there might be a small difference in how Spans and Context are related to each other after. Broadly speaking:
- In Kamon 2.x, a Scala Future and all the transformations applied to them (.map/.flatmap/etc) would form a "chain", and changes to the current context in any of the transformations would be carried on to the next transformation, as long as those changes are performed with the functions included in the
ScalaFutureInstrumentationcompanion object. This change brought two challenges:- It makes it impossible to cache Future values because the Future itself was tied to the context available when the Future was created for the first time. This would manifest as traces with Spans that don't belong to them.
- It is possible to leave dirty threads or get unexpected relationships between Spans when not using the helper functions from the
ScalaFutureInstrumentationcompanion object.
- In Kamon 1.x, a Scala Future would only be tied to its "execution context", making it possible to cache Future values and create Spans without concerns of leaving dirty threads, but context updates cannot be propagated through all transformations.
There is more information about the motivations for this change on #1021.
The Future Chaining instrumentation is still included in Kamon 2.2.0, but it is marked as deprecated and disabled by default. If you need to, you can bring it back with these configuration settings:
kanela.modules {
executor-service {
exclude += "scala.concurrent.impl.*"
}
scala-future {
enabled = true
}
akka-http {
instrumentations += "kamon.instrumentation.akka.http.FastFutureInstrumentation"
}
}
The Future Chaining instrumentation will be fully removed with Kamon 2.3.0.
Changes
v2.1.21 - Trace Helpers and Scala Future Chaining Deprecation
v2.1.20 Bug fix release
- kamon-redis: Fix #1027 by changing instrumentation so it does not use Jedis classes during loading, which leads to failures when Jedis is not on the classpath. Contributed by @SimunKaracic and @ivantopo via #1028 .
v2.1.19 Support for Jedis Redis client
- kamon-core: Introduce span reporting delay, allowing users to keep Spans in memory for a period of time. Contributed by @ivantopo via #1026
- kamon-akka-http: Fix #1014. Contributed by @SimunKaracic via #1018
- kamon-sqlite: Fix #1008, and update sqlite version. Contributed by @SimunKaracic and @dpsoft via #1023
- kamon-redis: New module, adding tracing for the popular Jedis library. Contributed by @SimunKaracic via #1022
v2.1.18 Maintenance release
- kamon-prometheus: It's now possible to generate gauge metrics from distribution based metrics. Contributed by @pnerg via #1011
- kamon-core: Add filtering to context tag propagation. Contributed by @pnerg via #1015
- kamon-status-page: Fix status page indicator. Contributed by @the-overengineer via #999.
- kamon-system-metrics: Fix typos in metric description. Contributed via #1007 by @moznion
- kamon-core: Added resetDistribution method to RangleSampler. Contributed by @SimunKaracic via #1017
- kamon-mongo: Update to driver version
4.x. If you're using kamon-mongo (instead of the kamon-bundle), beware. That package now supports only the4.x.xversions of mongo drivers. For older version of drivers, please usekamon-mongo-legacy. Contributed by @SimunKaracic via #1001 - kamon-mongo-legacy: new instrumentation module for older versions of mongo drivers.
https://github.com/kamon-io/Kamon/tree/master/instrumentation/kamon-mongo-legacy
Contributed by @SimunKaracic via #1001 - kamon-core: Added flag to disable starting new spans in client instrumentation when there is no current span. Contributed by @SimunKaracic via #1006
v2.1.17 - Support for Tapir with Akka HTTP Backend
New Instrumentation
- kamon-tapir: The new Tapir instrumentation can use Tapir's Endpoint definition to give a proper operation name to Spans created by the Akka HTTP Server instrumentation. Contributed by @SimunKaracic via #1000.
v2.1.16 - Sending Kamon Traces to OpenTelemetry
- kamon-system-metrics: Update oshi dependecy to latest version. Fixed #981
- kamon-opentelemetry: New reporter contributed by @pnerg via #977 🎉. Supports exporting traces according to OTLP.
- kamon-core: various fixes to the new w3c context propagation. Closed #986 and #985 via #987 and #988. Contributed by @pnerg.
- kamon-status-page: fixed scroll offset and guidance for users with invalid API key. Contributed by @the-overengineer via #976 and #969
- kamon-newrelic: update dependencies, fixing #995 in the process.