opentracing-contrib/java-spring-cloud
Fork: 143 Star: 388 (更新于 2024-12-01 17:49:11)
license: Apache-2.0
Language: Java .
Distributed tracing for Spring Boot, Cloud and other Spring projects
最后发布版本: release-0.6.0 ( 2021-01-22 00:20:19)
OpenTracing Spring Cloud
This repository provides OpenTracing instrumentation for Spring Boot and its various extensions. It can be used with any OpenTracing compatible implementation.
It contains auto-configurations which instruments and trace following Spring Boot projects:
- Spring Web (RestControllers, RestTemplates, WebAsyncTask, WebClient, WebFlux)
- @Async, @Scheduled, Executors
- WebSocket STOMP
- Feign, HystrixFeign
- Hystrix
- JMS
- JDBC
- Kafka
- Mongo
- Zuul
- Reactor
- RxJava
- Redis
- Standard logging - logs are added to active span
- Spring Messaging - trace messages being sent through Messaging Channels
- RabbitMQ
Compatibility table
The following table shows versions with compatible Spring Cloud releases.
opentracing-spring-cloud version | OpenTracing API | Spring Cloud version |
---|---|---|
0.5.x | 0.33.0 | Hoxton |
0.4.x | 0.32.0 | Hoxton |
0.3.x | 0.32.0 | Greenwich |
0.2.x | 0.31.0 | Finchley , Greenwich |
0.1.x | 0.31.0 | Dalston , Edgware |
Comparison to spring-cloud-sleuth
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 only 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.
Note on dependencies
It's worth noting that the although OpenTracing Spring Cloud contains code for instrumenting a wealth of Spring projects, it however does not pull those dependencies automatically, marking them as optional dependencies instead.
That means that for example a simple Spring Boot REST API application can include OpenTracing Spring Cloud without the fear of polluting the classpath with Spring Cloud dependencies that are otherwise unneeded
Configuration
The preferred way to use this library is via vendored starters. These starters use instrumentations from this library and expose specific tracer configuration in Spring native way:
Explicitly tracer configuration
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)
}
Properties
Property | Default | Description |
---|---|---|
opentracing.spring.cloud.reactor.enabled | true | Enable Reactor tracing. |
opentracing.spring.cloud.async.enabled | true | Enable tracing for @Async, Executor and WebAsyncTask/Callable. |
opentracing.spring.cloud.log.enabled | true | Add standard logging output to tracing system. |
opentracing.spring.cloud.scheduled.enabled | true | Enable @Scheduled tracing. |
opentracing.spring.cloud.feign.enabled | true | Enable Feign tracing. |
opentracing.spring.cloud.gateway.enabled | true | Enable Gateway tracing. |
opentracing.spring.cloud.hystrix.strategy.enabled | true | Enable Propagation of spans across threads using in Hystrix command tracing. |
opentracing.spring.cloud.jdbc.enabled | true | Enable JDBC tracing. |
opentracing.spring.cloud.jms.enabled | true | Enable JMS tracing. |
opentracing.spring.cloud.kafka.enabled | true | Enable Kafka tracing. |
opentracing.spring.cloud.mongo.enabled | true | Enable MongoDB tracing. |
opentracing.spring.cloud.reactor.enabled | true | Enable Reactor tracing. |
opentracing.spring.cloud.rxjava.enabled | true | Enable RxJava tracing. |
opentracing.spring.cloud.websocket.enabled | true | Enable Websocket tracing. |
opentracing.spring.cloud.zuul.enabled | true | Enable Zuul tracing. |
opentracing.spring.cloud.redis.enabled | true | Enable Redis tracing. |
opentracing.spring.cloud.redis.prefixOperationName | "" | Set a prefix for each Redis operation, e.g: MyPrefix.SET. |
opentracing.spring.cloud.jdbc.withActiveSpanOnly | false | Only trace JDBC calls if they are part of an active Span. |
opentracing.spring.cloud.jdbc.ignoreStatements | null | Set of JDBC statements to not trace. |
Development
Maven checkstyle plugin is used to maintain consistent code style based on Google Style Guides
./mvnw clean install
make // to run tests including dependency tests, a specific profile can be specified by make PROFILES=nodeps
Release
Follow instructions in RELEASE
License
最近版本更新:(数据更新于 1970-01-01 00:00:00)
2021-01-22 00:20:19 release-0.6.0
2019-11-21 20:38:30 release-0.3.10
2019-10-24 16:56:17 release-0.3.8
2019-09-10 23:23:03 release-0.3.5
主题(topics):
feign, hystrix, instrumentation, jdbc, jms, microservices, mongodb, opentracing, resttemplate, rxjava, spring, spring-boot, spring-cloud, spring-messaging, spring-stream, springboot, starters, tracing, websocket, zuul
opentracing-contrib/java-spring-cloud同语言 Java最近更新仓库
2024-12-20 19:54:15 mybatis-flex/mybatis-flex
2024-12-19 21:53:46 spring-projects/spring-boot
2024-12-19 21:25:16 Stirling-Tools/Stirling-PDF
2024-12-19 16:28:14 Tornaco/Thanox
2024-12-19 10:42:01 alibaba/nacos
2024-12-18 20:58:34 dromara/forest