# 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`: ```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: ```gradle compile 'io.opencensus:opencensus-dropwizard:0.17.0' ``` ### And the following code: ```java 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