Akka Streams

Lightbend Telemetry is capable of capturing data for the following Akka Streams related features.

Cinnamon Akka Stream dependency

After adding the Cinnamon Agent as described in the setup, make sure that you add the Cinnamon Akka Stream module dependency to your build file:

sbt
libraryDependencies += Cinnamon.library.cinnamonAkkaStream
Maven
<dependency>
  <groupId>com.lightbend.cinnamon</groupId>
  <artifactId>cinnamon-akka-stream_2.13</artifactId>
  <version>2.20.4</version>
</dependency>
Gradle
dependencies {
  implementation group: 'com.lightbend.cinnamon', name: 'cinnamon-akka-stream_2.13', version: '2.20.4'
}

Terminology

Cinnamon aligns its terminology with Akka. You can find definitions for terminology used in the documentation for Akka Streams.

Akka Stream metrics

The following metrics are recorded for instrumented Akka Streams, type of metric in parentheses:

  • Running streams (counter) — the number of streams currently running (as identified by reporting configuration).

  • Running operators per stream (counter) — the total number of operators currently running per stream (as identified by reporting configuration).

  • Running operators (counter) — the number of operator instances currently running (as identified by reporting configuration).

  • Stream throughput (rate) — the rate of elements being processed by a stream as a whole (measured at the sinks).

  • Operator throughput (rate) — the rate of elements that have been processed by an operator.

  • Operator processing time (recorder) — the time for processing elements through an operator.

Throughput and processing time metrics are illustrated in this diagram:

Throughput and processing time metrics

Akka Stream events

The following events are recorded for instrumented Akka Streams:

  • Operator failure — event when an operator fails.

Akka Stream extended metrics

In addition to the core metrics described above, extended metrics can be enabled for recording end-to-end flow time, stream demand, latency, and per connection metrics.

Akka Stream configuration

To configure telemetry for Akka Streams see:

To configure extended telemetry for Akka Streams see:

Akka Stream telemetry use cases

Some telemetry use cases for Akka Streams describe how the metrics can be used for performance analysis and illustrate what to expect.