Coda Hale Metrics

Lightbend Telemetry supports Coda Hale Metrics, which is a toolkit for gathering metrics. Coda Hale Metrics supports various reporting plugins, and can be used to export actor metrics data to your own monitoring infrastructure. The following reporters are supported out-of-the-box:

Using StatsD is such a common integration pattern that it is highlighted it in a separate section.

It is also possible to add additional metrics that gets reported via the same reporting mechanism as the actor metrics. The following additional metrics are supported out-of-the-box:

Coda Hale Metrics does not process events natively. Therefore, we send all event information as metric rates which results in the loss of any contextual information.

Cinnamon provides an API through which you can wire up any Coda Hale Metrics reporter, including your own custom reporter. The following sections will describe how to set up provided reporters and metrics or how to integrate custom reporters.

Metrics 4 - NoClassDefFoundError: JmxReporter

Coda Hale Metrics 4 moved the com.codahale.metrics.JmxReporter class into an external dependency.

If you depend on Metrics 4 in your Cinnamon setup (i.e., Cinnamon.library.cinnamonCHMetrics) and also import another dependency that transitively depends on Metrics 3, you may see errors like this:

java.lang.NoClassDefFoundError: com/codahale/metrics/JmxReporter
at com.datastax.driver.core.Metrics.<init>(Metrics.java:146)

This issue has come up when using the Datastax Java driver. Their documentation includes a section specifically on Metrics 4.x compatibility.

Another potential fix is to specifically use Metrics 3 in your Cinnamon configuration.

Contents