Documentation

Akka Instrumentation Overview

Kamon ships instrumentation modules for Akka, each addressing a different aspect of the toolkit:

Local Actor Systems

This module is the foundation of all Akka-related instrumentation, including:

  • Metrics collection: Metrics for actor systems, actors, routers, dispatchers and actor groups. You must explicitly configure which components to track.
  • Message Tracing: Generates Spans for actor messages. You must explicitly configure which actors to trace.
  • Context Propagation: Make sure that Kamon’s Context gets propagated across actor messages in the local actor system.
  • Ask Pattern Timeout Warning: A utility that logs a warning with additional information when a usage of the Ask Pattern times out.

The following artifacts are published, pick the right one for your Akka version:

  • kamon-akka-2.4 for Akka 2.4.20+
  • kamon-akka-2.5 for Akka 2.5.8+

Dependency For Local Actor Systems


libraryDependencies += "io.kamon" %% "kamon-akka-2.5" % "1.1.2"


    <dependency>
      <groupId>io.kamon</groupId>
      <artifactId>kamon-akka-2.5_2.12</artifactId>
      <version>1.1.2</version>
    </dependency>


implementation 'io.kamon:kamon-akka-2.5_2.12:1.1.2'

You must start your application with the instrumentation agent for this module to work properly.

Remoting and Cluster

Provides instrumentation for remoting channels in Akka. Since Akka cluster builds on top of remoting, the metrics and context propagation features included with this module will also benefit cluster users.

  • Remoting Metrics Collection: Metrics for message serialization/deserialization time and message sizes for all incoming and outgoing messages to remote actor systems.
  • Context Propagation: Propagates Kamon’s Context to remote actor systems. This is specially important for supporting distributed tracing.

The following artifacts are published, pick the right one for your Akka version:

  • kamon-akka-remote-2.4 for Akka 2.4.20+
  • kamon-akka-remote-2.5 for Akka 2.5.8+

Dependency For Remoting and Cluster


libraryDependencies += "io.kamon" %% "kamon-akka-remote-2.5" % "1.1.0"


    <dependency>
      <groupId>io.kamon</groupId>
      <artifactId>kamon-akka-remote-2.5_2.12</artifactId>
      <version>1.1.0</version>
    </dependency>


implementation 'io.kamon:kamon-akka-remote-2.5_2.12:1.1.0'

You must start your application with the instrumentation agent for this module to work properly.