Dropwizard Metrics for Akka Actors
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 |