1*a24ffb47SSadaf Ebrahimi# OpenCensus Jaeger Trace Exporter 2*a24ffb47SSadaf Ebrahimi[![Build Status][travis-image]][travis-url] 3*a24ffb47SSadaf Ebrahimi[![Windows Build Status][appveyor-image]][appveyor-url] 4*a24ffb47SSadaf Ebrahimi[![Maven Central][maven-image]][maven-url] 5*a24ffb47SSadaf Ebrahimi 6*a24ffb47SSadaf EbrahimiThe *OpenCensus Jaeger Trace Exporter* is a trace exporter that exports 7*a24ffb47SSadaf Ebrahimidata to Jaeger. 8*a24ffb47SSadaf Ebrahimi 9*a24ffb47SSadaf Ebrahimi[Jaeger](https://jaeger.readthedocs.io/en/latest/), inspired by [Dapper](https://research.google.com/pubs/pub36356.html) and [OpenZipkin](http://zipkin.io/), is a distributed tracing system released as open source by [Uber Technologies](http://uber.github.io/). It is used for monitoring and troubleshooting microservices-based distributed systems, including: 10*a24ffb47SSadaf Ebrahimi 11*a24ffb47SSadaf Ebrahimi- Distributed context propagation 12*a24ffb47SSadaf Ebrahimi- Distributed transaction monitoring 13*a24ffb47SSadaf Ebrahimi- Root cause analysis 14*a24ffb47SSadaf Ebrahimi- Service dependency analysis 15*a24ffb47SSadaf Ebrahimi- Performance / latency optimization 16*a24ffb47SSadaf Ebrahimi 17*a24ffb47SSadaf Ebrahimi## Quickstart 18*a24ffb47SSadaf Ebrahimi 19*a24ffb47SSadaf Ebrahimi### Prerequisites 20*a24ffb47SSadaf Ebrahimi 21*a24ffb47SSadaf Ebrahimi[Jaeger](https://jaeger.readthedocs.io/en/latest/) stores and queries traces exported by 22*a24ffb47SSadaf Ebrahimiapplications instrumented with Census. The easiest way to [start a Jaeger 23*a24ffb47SSadaf Ebrahimiserver](https://jaeger.readthedocs.io/en/latest/getting_started/) is to paste the below: 24*a24ffb47SSadaf Ebrahimi 25*a24ffb47SSadaf Ebrahimi```bash 26*a24ffb47SSadaf Ebrahimidocker run -d \ 27*a24ffb47SSadaf Ebrahimi -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \ 28*a24ffb47SSadaf Ebrahimi -p5775:5775/udp -p6831:6831/udp -p6832:6832/udp \ 29*a24ffb47SSadaf Ebrahimi -p5778:5778 -p16686:16686 -p14268:14268 -p9411:9411 \ 30*a24ffb47SSadaf Ebrahimi jaegertracing/all-in-one:latest 31*a24ffb47SSadaf Ebrahimi``` 32*a24ffb47SSadaf Ebrahimi 33*a24ffb47SSadaf Ebrahimi### Hello Jaeger 34*a24ffb47SSadaf Ebrahimi 35*a24ffb47SSadaf Ebrahimi#### Add the dependencies to your project 36*a24ffb47SSadaf Ebrahimi 37*a24ffb47SSadaf EbrahimiFor Maven add to your `pom.xml`: 38*a24ffb47SSadaf Ebrahimi```xml 39*a24ffb47SSadaf Ebrahimi<dependencies> 40*a24ffb47SSadaf Ebrahimi <dependency> 41*a24ffb47SSadaf Ebrahimi <groupId>io.opencensus</groupId> 42*a24ffb47SSadaf Ebrahimi <artifactId>opencensus-api</artifactId> 43*a24ffb47SSadaf Ebrahimi <version>0.28.3</version> 44*a24ffb47SSadaf Ebrahimi </dependency> 45*a24ffb47SSadaf Ebrahimi <dependency> 46*a24ffb47SSadaf Ebrahimi <groupId>io.opencensus</groupId> 47*a24ffb47SSadaf Ebrahimi <artifactId>opencensus-exporter-trace-jaeger</artifactId> 48*a24ffb47SSadaf Ebrahimi <version>0.28.3</version> 49*a24ffb47SSadaf Ebrahimi </dependency> 50*a24ffb47SSadaf Ebrahimi <dependency> 51*a24ffb47SSadaf Ebrahimi <groupId>io.opencensus</groupId> 52*a24ffb47SSadaf Ebrahimi <artifactId>opencensus-impl</artifactId> 53*a24ffb47SSadaf Ebrahimi <version>0.28.3</version> 54*a24ffb47SSadaf Ebrahimi <scope>runtime</scope> 55*a24ffb47SSadaf Ebrahimi </dependency> 56*a24ffb47SSadaf Ebrahimi</dependencies> 57*a24ffb47SSadaf Ebrahimi``` 58*a24ffb47SSadaf Ebrahimi 59*a24ffb47SSadaf EbrahimiFor Gradle add to your dependencies: 60*a24ffb47SSadaf Ebrahimi```groovy 61*a24ffb47SSadaf Ebrahimicompile 'io.opencensus:opencensus-api:0.28.3' 62*a24ffb47SSadaf Ebrahimicompile 'io.opencensus:opencensus-exporter-trace-jaeger:0.28.3' 63*a24ffb47SSadaf Ebrahimiruntime 'io.opencensus:opencensus-impl:0.28.3' 64*a24ffb47SSadaf Ebrahimi``` 65*a24ffb47SSadaf Ebrahimi 66*a24ffb47SSadaf Ebrahimi#### Register the exporter 67*a24ffb47SSadaf Ebrahimi 68*a24ffb47SSadaf EbrahimiThis will export traces to the Jaeger thrift format to the Jaeger instance started previously: 69*a24ffb47SSadaf Ebrahimi 70*a24ffb47SSadaf Ebrahimi```java 71*a24ffb47SSadaf Ebrahimipublic class MyMainClass { 72*a24ffb47SSadaf Ebrahimi public static void main(String[] args) throws Exception { 73*a24ffb47SSadaf Ebrahimi JaegerTraceExporter.createAndRegister("http://127.0.0.1:14268/api/traces", "my-service"); 74*a24ffb47SSadaf Ebrahimi // ... 75*a24ffb47SSadaf Ebrahimi } 76*a24ffb47SSadaf Ebrahimi} 77*a24ffb47SSadaf Ebrahimi``` 78*a24ffb47SSadaf Ebrahimi 79*a24ffb47SSadaf EbrahimiSee also [this integration test](https://github.com/census-instrumentation/opencensus-java/blob/master/exporters/trace/jaeger/src/test/java/io/opencensus/exporter/trace/jaeger/JaegerExporterHandlerIntegrationTest.java). 80*a24ffb47SSadaf Ebrahimi 81*a24ffb47SSadaf Ebrahimi#### Java Versions 82*a24ffb47SSadaf Ebrahimi 83*a24ffb47SSadaf EbrahimiJava 6 or above is required for using this exporter. 84*a24ffb47SSadaf Ebrahimi 85*a24ffb47SSadaf Ebrahimi[travis-image]: https://travis-ci.org/census-instrumentation/opencensus-java.svg?branch=master 86*a24ffb47SSadaf Ebrahimi[travis-url]: https://travis-ci.org/census-instrumentation/opencensus-java 87*a24ffb47SSadaf Ebrahimi[appveyor-image]: https://ci.appveyor.com/api/projects/status/hxthmpkxar4jq4be/branch/master?svg=true 88*a24ffb47SSadaf Ebrahimi[appveyor-url]: https://ci.appveyor.com/project/opencensusjavateam/opencensus-java/branch/master 89*a24ffb47SSadaf Ebrahimi[maven-image]: https://maven-badges.herokuapp.com/maven-central/io.opencensus/opencensus-exporter-trace-jaeger/badge.svg 90*a24ffb47SSadaf Ebrahimi[maven-url]: https://maven-badges.herokuapp.com/maven-central/io.opencensus/opencensus-exporter-trace-jaeger 91