Skip to content

v2.5.0 - Akka gRPC Server Support & Improvements

Compare
Choose a tag to compare
@ivantopo ivantopo released this 07 Mar 08:59
· 126 commits to master since this release

Akka gRPC Server Support

Starting on this release, Kamon Telemetry ships with support for tracing server-side Akka gRPC requests implemented with Akka HTTP, Play Framework, and Lagom. This instrumentation is the first step towards full Akka gRPC support and we will soon add:

  • gRPC client tracing
  • Context propagation across gRPC channels

Improvements

  • core: Add the error.type tag to traces, getting us closer to follow the OpenTelemetry semantic conventions. Contributed by @hughsimpson via #1112
  • kafka: Prevent the Kafka producer instrumentation from starting traces when there is no current trace on the application. There is a new kamon.instrumentation.kafka.client.tracing.start-trace-on-producer setting to control this behavior. Contributed by @ivantopo via #1125
  • akka-grpc: New instrumentation for server-side Akka gRPC. Contributed by @ivantopo via #1119
  • akka: #1093 New instrumentation for Akka's Scheduler scheduler.scheduleOnce function, which should bring proper context propagation for pattern.retry and pattern.after as well. Contributed by @ivantopo via #1135
  • executors: #641 Avoid reflective access on the executors instrumentation. Contributed by @ivantopo via #1136

Fixes

  • influxdb: #1129, #1131 There two bugs regarding encoding and configuration settings on the InfluxDB Authorization Token support introduced on Kamon Telemetry 2.4.8, those are gone now. Fixed by @duese via #1130
  • redis: #1082 The Jedis instrumentation wasn't measuring the entire roundtrip time to Redis, only the time it took to send out the commands. Fixed by @ivantopo via #1117
  • redis: #1072 Ensure the Akka instrumentation takes the Rediscala actors' exclusions into account. Reported by @jtjeferreira and fixed by @ivantopo via #1122
  • akka:" #1116 Stop generating spans for Akka Streams-related actors. Fixed by @ivantopo via #1133
  • akka: #1132 Fix module registration warnings for Akka Dispatchers. Fixed by @ivantopo via #1138

Breaking Changes 🚨

  • We removed the Play gRPC-specific instrumentation that was included in kamon-play to the new kamon-akka-grpc hooks at a lower level that will work with both, coming with two important changes:
    • If you are not using the Kamon Bundle but instead adding dependencies one by one, you should add the new kamon-akka-grpc dependency for to your classpath
    • There is no custom operation name generator support in kamon-play anymore. All gRPC operations are now instrumented with the tag names defined by the OpenTelemetry semantic conventions and there shouldn't be any need to deviate from that with a custom generator
  • The operation tag in Play gRPC requests will no longer have a / prefix, meaning that operations that previously were reported as /ReplyService/SayHello will now show up as ReplyService/SayHello. You might need to update your dashboards and alert conditions to account for that
  • Kamon can no longer instrument Executors created by these helper functions from java.util.concurrent.Executors:
    • newSingleThreadExecutor
    • newSingleThreadScheduledExecutor
    • unconfigurableExecutorService
    • unconfigurableScheduledExecutorService