This repository provides OpenTracing instrumentation for Spring Cloud. It can be used with any OpenTracing compatible implementation.
It contains auto-configurations for Spring Boot which will instrument and trace several Spring Cloud and other integrations:
- Spring Web (RestControllers, RestTemplates, WebAsyncTask)
- @Async, @Scheduled, Executors
- WebSocket STOMP
- Feign, HystrixFeign
- Hystrix
- JMS
- JDBC
- Zuul
- RxJava
- Standard logging - logs are added to active span
- Spring Messaging - trace messages being sent through Messaging Channels
This library is compatible with Spring Cloud Camden.SR7
, Dalston.SR3
and Edgware.RELEASE
This project is similar to spring-cloud-sleuth,
both provide out of the box tracing solution for Spring Boot/Cloud. Some of the instrumentations in this
package are based on original sleuth
work.
However there are a couple of differences:
- OpenTracing support in
sleuth
is limited to one tracer implementation - brave-opentracing. In other words it's not possible to use arbitrary OpenTracing tracer withsleuth
. sleuth
might support different set of instrumentations.- Instrumentations in
sleuth
might add different set of tags and logs to represent the same events.
Just add the following dependency in your pom.xml:
<dependency>
<groupId>io.opentracing.contrib</groupId>
<artifactId>opentracing-spring-cloud-starter</artifactId>
</dependency>
, and provide OpenTracing tracer bean:
@Bean
public io.opentracing.Tracer tracer() {
return new // tracer instance of your choice (Zipkin, Jaeger, LightStep)
}
See the README.md file
Maven checkstyle plugin is used to maintain consistent code style based on Google Style Guides
A running docker daemon needs to be present on the system before running the tests
./mvnw clean install
make // to run tests including dependency tests, a specific profile can be specified by make PROFILES=nodeps
Follow instructions in RELEASE