xref: /aosp_15_r20/external/opencensus-java/exporters/trace/jaeger/README.md (revision a24ffb47c3166327784aa05b149974e82e8f71b8)
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