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