Skip to content

kevinconaway/akka-dropwizard

Repository files navigation

Dropwizard Metrics for Akka Actors

build status

This project instruments an Akka ActorSystem to provide Dropwizard metrics for Actors. Currently, the following metrics are captured:

  • A Gauge for the size of an Actors mailbox
  • A Timer measuring how long a message sits in an Actors mailbox

Usage

This project is composed of two modules:

  • akka-dropwizard-agent, a java agent which performs the ActorSystem instrumentation
  • akka-dropwizard-metrics which contains the code to configure the agent.

First, include the akka-dropwizard-metrics module in your project:

    <dependency>
        <groupId>com.github.kevinconaway</groupId>
        <artifactId>akka-dropwizard-metrics</artifactId>
        <version>1.2</version>
    </dependency>

There is a singleton configuration class, AkkaDropwizard that must be configured before the ActorSystem is created

MetricRegistry registry = ...
AkkaDropwizard.configure(registry);

By default, the metrics will be stored under a root prefix called actor-metrics. You can customize this by providing an instance of AkkaDropwizardSettings to AkkaDropwizard

AkkaDropwizardSettings settings = ...
MetricRegistry registry = ...
AkkaDropwizard.configure(registry, settings);

The instrumentation is performed by a java agent that you need to run with your application. Add the following argument to your VM startup properties:

-javaagent:/path/to/akka-dropwizard-agent-1.2.jar

Compatibility Matrix

Below are the versions Akka and Dropwizard that this library uses in each version

This Project Akka Version Dropwizard Version Spring Boot Version
1.0 2.5.x (Scala 2.12) 3.2.x N/A
1.1 2.5.x (Scala 2.12) 3.2.x 2.0.x
1.2 2.5.x (Scala 2.12) 3.2.x 2.0.x