tree: 1bcec3d80e6cd536c70630688557898c2d31d8d6 [path history] [tgz]
  1. src/
  2. build.gradle
  3. README.md
contrib/dropwizard/README.md

OpenCensus DropWizard Util for Java

The OpenCensus DropWizard Util for Java provides an easy way to translate Dropwizard metrics to OpenCensus.

Quickstart

Prerequisites

Assuming, you already have both the OpenCensus and Dropwizard client libraries setup and working inside your application.

Add the dependencies to your project

For Maven add to your pom.xml:

<dependencies>
  <dependency>
    <groupId>io.opencensus</groupId>
    <artifactId>opencensus-contrib-dropwizard</artifactId>
    <version>0.17.0</version>
  </dependency>
</dependencies>

For Gradle add to your dependencies:

compile 'io.opencensus:opencensus-dropwizard:0.17.0'

And the following code:

import java.util.Collections;

public class YourClass {
  // Create registry for Dropwizard metrics.
  static final com.codahale.metrics.MetricRegistry codahaleRegistry =
    new com.codahale.metrics.MetricRegistry();

  // Create a Dropwizard counter.
  static final com.codahale.metrics.Counter requests = codahaleRegistry.counter("requests");

  public static void main(String[] args) {

    // Increment the requests.
    requests.inc();

    // Hook the Dropwizard registry into the OpenCensus registry
    // via the DropWizardMetrics metric producer.
    io.opencensus.metrics.Metrics.getExportComponent().getMetricProducerManager().add(
          new io.opencensus.contrib.dropwizard.DropWizardMetrics(
            Collections.singletonList(codahaleRegistry)));

  }
}

Translation to OpenCensus Metrics

This section describes how each of the DropWizard metrics translate into OpenCensus metrics.

DropWizard Counters

Given a DropWizard Counter with name cache_evictions, the following values are reported:

  • name: codahale_<initial_metric_name>_<initial_type> (ex: codahale_cache_evictions_counter)
  • description: Collected from Dropwizard (metric=<metric_name>, type=<class_name>) (ex: Collected from Dropwizard (metric=cache_evictions, type=com.codahale.metrics.Counter))
  • type: GAUGE_INT64
  • unit: 1

Note: OpenCensus's CUMULATIVE_INT64 type represent monotonically increasing values. Since DropWizard Counter goes up/down, it make sense to report them as OpenCensus GAUGE_INT64.

DropWizard Gauges

Given a DropWizard Gauge with name line_requests, the following values are reported:

  • name: codahale_<initial_metric_name>_<initial_type> (ex: codahale_line_requests_gauge)
  • description: Collected from Dropwizard (metric=<metric_name>, type=<class_name>)
  • type: GAUGE_INT64 or GAUGE_DOUBLE
  • unit: 1

Note: For simplicity, OpenCensus uses GAUGE_DOUBLE type for any Number and GAUGE_INT64 type for Boolean values.

DropWizard Meters

Given a DropWizard Meter with name get_requests, the following values are reported:

  • name: codahale_<initial_metric_name>_<initial_type> (ex: codahale_get_requests_meter)
  • description: Collected from Dropwizard (metric=<metric_name>, type=<class_name>)
  • type: CUMULATIVE_INT64
  • unit: 1

DropWizard Histograms

Given a DropWizard Histogram with name results, the following values are reported:

  • name: codahale_<initial_metric_name>_<initial_type> (ex: codahale_results_histogram)
  • description: Collected from Dropwizard (metric=<metric_name>, type=<class_name>)
  • type: SUMMARY
  • unit: 1

DropWizard Timers

Given a DropWizard Timer with name requests, the following values are reported:

  • name: codahale_<initial_metric_name>_<initial_type> (ex: codahale_requests_timer)
  • description: Collected from Dropwizard (metric=<metric_name>, type=<class_name>)
  • type: SUMMARY
  • unit: 1