1 # OpenCensus DropWizard Util for Java 2 3 The *OpenCensus DropWizard Util for Java* provides an easy way to translate Dropwizard metrics to 4 OpenCensus. 5 6 ## Quickstart 7 8 ### Prerequisites 9 10 Assuming, you already have both the OpenCensus and Dropwizard client libraries setup and working 11 inside your application. 12 13 ### Add the dependencies to your project 14 15 For Maven add to your `pom.xml`: 16 ```xml 17 <dependencies> 18 <dependency> 19 <groupId>io.opencensus</groupId> 20 <artifactId>opencensus-contrib-dropwizard</artifactId> 21 <version>0.17.0</version> 22 </dependency> 23 </dependencies> 24 ``` 25 26 For Gradle add to your dependencies: 27 ```gradle 28 compile 'io.opencensus:opencensus-dropwizard:0.17.0' 29 ``` 30 31 ### And the following code: 32 33 ```java 34 import java.util.Collections; 35 36 public class YourClass { 37 // Create registry for Dropwizard metrics. 38 static final com.codahale.metrics.MetricRegistry codahaleRegistry = 39 new com.codahale.metrics.MetricRegistry(); 40 41 // Create a Dropwizard counter. 42 static final com.codahale.metrics.Counter requests = codahaleRegistry.counter("requests"); 43 44 public static void main(String[] args) { 45 46 // Increment the requests. 47 requests.inc(); 48 49 // Hook the Dropwizard registry into the OpenCensus registry 50 // via the DropWizardMetrics metric producer. 51 io.opencensus.metrics.Metrics.getExportComponent().getMetricProducerManager().add( 52 new io.opencensus.contrib.dropwizard.DropWizardMetrics( 53 Collections.singletonList(codahaleRegistry))); 54 55 } 56 } 57 ``` 58 59 ## Translation to OpenCensus Metrics 60 61 This section describes how each of the DropWizard metrics translate into OpenCensus metrics. 62 63 ### DropWizard Counters 64 65 Given a DropWizard Counter with name `cache_evictions`, the following values are reported: 66 67 * name: codahale_<initial_metric_name>_<initial_type> (ex: codahale_cache_evictions_counter) 68 * description: Collected from Dropwizard (metric=<metric_name>, type=<class_name>) 69 (ex: Collected from Dropwizard (metric=cache_evictions, type=com.codahale.metrics.Counter)) 70 * type: GAUGE_INT64 71 * unit: 1 72 73 Note: OpenCensus's CUMULATIVE_INT64 type represent monotonically increasing values. Since 74 DropWizard Counter goes up/down, it make sense to report them as OpenCensus GAUGE_INT64. 75 76 ### DropWizard Gauges 77 78 Given a DropWizard Gauge with name `line_requests`, the following values are reported: 79 80 * name: codahale_<initial_metric_name>_<initial_type> (ex: codahale_line_requests_gauge) 81 * description: Collected from Dropwizard (metric=<metric_name>, type=<class_name>) 82 * type: GAUGE_INT64 or GAUGE_DOUBLE 83 * unit: 1 84 85 Note: For simplicity, OpenCensus uses GAUGE_DOUBLE type for any Number and GAUGE_INT64 86 type for Boolean values. 87 88 ### DropWizard Meters 89 90 Given a DropWizard Meter with name `get_requests`, the following values are reported: 91 92 * name: codahale_<initial_metric_name>_<initial_type> (ex: codahale_get_requests_meter) 93 * description: Collected from Dropwizard (metric=<metric_name>, type=<class_name>) 94 * type: CUMULATIVE_INT64 95 * unit: 1 96 97 ### DropWizard Histograms 98 99 Given a DropWizard Histogram with name `results`, the following values are reported: 100 101 * name: codahale_<initial_metric_name>_<initial_type> (ex: codahale_results_histogram) 102 * description: Collected from Dropwizard (metric=<metric_name>, type=<class_name>) 103 * type: SUMMARY 104 * unit: 1 105 106 ### DropWizard Timers 107 108 Given a DropWizard Timer with name `requests`, the following values are reported: 109 * name: codahale_<initial_metric_name>_<initial_type> (ex: codahale_requests_timer) 110 * description: Collected from Dropwizard (metric=<metric_name>, type=<class_name>) 111 * type: SUMMARY 112 * unit: 1 113