xref: /aosp_15_r20/external/opencensus-java/contrib/spring_starter/README.md (revision a24ffb47c3166327784aa05b149974e82e8f71b8)
1*a24ffb47SSadaf Ebrahimi# OpenCensus Spring Starter
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 Spring Starter for Java* is a starter package that includes
7*a24ffb47SSadaf Ebrahimipackages required to enable tracing using opencensus when working with [Spring Web][spring-web-url].
8*a24ffb47SSadaf Ebrahimi
9*a24ffb47SSadaf EbrahimiThis version is compatible with [Spring Boot 2.0][spring-boot-2.0-url].
10*a24ffb47SSadaf Ebrahimi
11*a24ffb47SSadaf Ebrahimi## Servlet and AsyncRestTemplate Tracing
12*a24ffb47SSadaf Ebrahimi
13*a24ffb47SSadaf EbrahimiEnable tracing on RestController (server side) and AysncRestTemplate (client side) by simply including opencensus-contrib-spring-starter in your dependencies and
14*a24ffb47SSadaf Ebrahimiinitializing exporter. It automatically traces your http request and collects stats associated with the
15*a24ffb47SSadaf Ebrahimirequest.
16*a24ffb47SSadaf Ebrahimi
17*a24ffb47SSadaf EbrahimiIt does require to register exporter and views.
18*a24ffb47SSadaf Ebrahimi
19*a24ffb47SSadaf Ebrahimi### Depedencies
20*a24ffb47SSadaf Ebrahimi
21*a24ffb47SSadaf Ebrahimi#### Maven
22*a24ffb47SSadaf Ebrahimi
23*a24ffb47SSadaf Ebrahimi```xml
24*a24ffb47SSadaf Ebrahimi<dependencies>
25*a24ffb47SSadaf Ebrahimi    <dependency>
26*a24ffb47SSadaf Ebrahimi        <groupId>io.opencensus</groupId>
27*a24ffb47SSadaf Ebrahimi        <artifactId>opencensus-contrib-spring-starter</artifactId>
28*a24ffb47SSadaf Ebrahimi        <version>0.23.0</version>
29*a24ffb47SSadaf Ebrahimi    </dependency>
30*a24ffb47SSadaf Ebrahimi</dependencies>
31*a24ffb47SSadaf Ebrahimi
32*a24ffb47SSadaf Ebrahimi```
33*a24ffb47SSadaf Ebrahimi
34*a24ffb47SSadaf Ebrahimi#### Gradle
35*a24ffb47SSadaf Ebrahimi```gradle
36*a24ffb47SSadaf EbrahimidependencyManagement {
37*a24ffb47SSadaf Ebrahimi    imports {
38*a24ffb47SSadaf Ebrahimi        mavenBom "io.opencensus:opencensus-contrib-spring-starter:0.23.0"
39*a24ffb47SSadaf Ebrahimi    }
40*a24ffb47SSadaf Ebrahimi}
41*a24ffb47SSadaf Ebrahimidependencies {
42*a24ffb47SSadaf Ebrahimi	compile 'io.opencensus:opencensus-contrib-spring:0.23.0'
43*a24ffb47SSadaf Ebrahimi}
44*a24ffb47SSadaf Ebrahimi```
45*a24ffb47SSadaf Ebrahimi
46*a24ffb47SSadaf Ebrahimi### Tracing Properties
47*a24ffb47SSadaf Ebrahimi
48*a24ffb47SSadaf EbrahimiOptionally configure one or more Tracing Properties in application.properties file.
49*a24ffb47SSadaf Ebrahimi
50*a24ffb47SSadaf Ebrahimi
51*a24ffb47SSadaf Ebrahimi#### PublicEndpoint
52*a24ffb47SSadaf Ebrahimi
53*a24ffb47SSadaf EbrahimiIf a servlet is serving publicEndpoints (untrusted boundary) then set this property to `true`.
54*a24ffb47SSadaf EbrahimiWhen set to true incoming trace context is added as a parent link instead of as a parent.
55*a24ffb47SSadaf EbrahimiBy default it is set to `false`. When set to `false` it uses incoming trace context as a parent.
56*a24ffb47SSadaf Ebrahimi
57*a24ffb47SSadaf Ebrahimi```
58*a24ffb47SSadaf Ebrahimiopencensus.spring.trace.publicEndpoint = true
59*a24ffb47SSadaf Ebrahimi```
60*a24ffb47SSadaf Ebrahimi
61*a24ffb47SSadaf Ebrahimi#### Propagation
62*a24ffb47SSadaf Ebrahimi
63*a24ffb47SSadaf Ebrahimiopencensus.spring.trace.propagation = TRACE_PROPAGATION_B3
64*a24ffb47SSadaf Ebrahimi
65*a24ffb47SSadaf EbrahimiBy default it is set to TRACE_PROPAGATION_TRACE_CONTEXT which uses [W3C Tracecontext](https://github.com/census-instrumentation/opencensus-java/blob/master/api/src/main/java/io/opencensus/trace/propagation/TextFormat.java)
66*a24ffb47SSadaf Ebrahimipropagator to propagate trace context. To use [B3 format](https://github.com/census-instrumentation/opencensus-java/blob/master/impl_core/src/main/java/io/opencensus/implcore/trace/propagation/B3Format.java)
67*a24ffb47SSadaf Ebrahimiset the property to TRACE_PROPAGATION_B3
68*a24ffb47SSadaf Ebrahimi
69*a24ffb47SSadaf Ebrahimi```
70*a24ffb47SSadaf Ebrahimiopencensus.spring.trace.propagation = TRACE_PROPAGATION_B3
71*a24ffb47SSadaf Ebrahimi```
72*a24ffb47SSadaf Ebrahimi
73*a24ffb47SSadaf Ebrahimi#### Java Versions
74*a24ffb47SSadaf Ebrahimi
75*a24ffb47SSadaf EbrahimiJava 6 or above is required for using this artifact.
76*a24ffb47SSadaf Ebrahimi
77*a24ffb47SSadaf Ebrahimi[travis-image]: https://travis-ci.org/census-instrumentation/opencensus-java.svg?branch=master
78*a24ffb47SSadaf Ebrahimi[travis-url]: https://travis-ci.org/census-instrumentation/opencensus-java
79*a24ffb47SSadaf Ebrahimi[appveyor-image]: https://ci.appveyor.com/api/projects/status/hxthmpkxar4jq4be/branch/master?svg=true
80*a24ffb47SSadaf Ebrahimi[appveyor-url]: https://ci.appveyor.com/project/opencensusjavateam/opencensus-java/branch/master
81*a24ffb47SSadaf Ebrahimi[maven-image]: https://maven-badges.herokuapp.com/maven-central/io.opencensus/opencensus-contrib-spring-starter/badge.svg
82*a24ffb47SSadaf Ebrahimi[maven-url]: https://maven-badges.herokuapp.com/maven-central/io.opencensus/opencensus-contrib-spring-starter
83*a24ffb47SSadaf Ebrahimi[spring-boot-2.0-url]: https://github.com/spring-projects/spring-boot/tree/2.0.x
84*a24ffb47SSadaf Ebrahimi[spring-web-url]: https://github.com/spring-projects/spring-framework/tree/master/spring-web
85