{"id":15294778,"url":"https://github.com/opentracing-contrib/java-spring-cloud","last_synced_at":"2025-05-14T04:10:38.928Z","repository":{"id":43557781,"uuid":"96905440","full_name":"opentracing-contrib/java-spring-cloud","owner":"opentracing-contrib","description":"Distributed tracing for Spring Boot, Cloud and other Spring projects","archived":false,"fork":false,"pushed_at":"2025-03-15T19:48:43.000Z","size":826,"stargazers_count":394,"open_issues_count":59,"forks_count":144,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-04-14T10:22:49.386Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opentracing-contrib.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-11T14:56:50.000Z","updated_at":"2025-04-12T02:53:01.000Z","dependencies_parsed_at":"2025-03-31T05:01:04.722Z","dependency_job_id":"7a13b32b-0af3-4f24-a8ae-728d7c598531","html_url":"https://github.com/opentracing-contrib/java-spring-cloud","commit_stats":null,"previous_names":[],"tags_count":113,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentracing-contrib%2Fjava-spring-cloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentracing-contrib%2Fjava-spring-cloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentracing-contrib%2Fjava-spring-cloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentracing-contrib%2Fjava-spring-cloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opentracing-contrib","download_url":"https://codeload.github.com/opentracing-contrib/java-spring-cloud/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254070125,"owners_count":22009560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["feign","hystrix","instrumentation","jdbc","jms","microservices","mongodb","opentracing","resttemplate","rxjava","spring","spring-boot","spring-cloud","spring-messaging","spring-stream","springboot","starters","tracing","websocket","zuul"],"created_at":"2024-09-30T17:06:54.549Z","updated_at":"2025-05-14T04:10:33.910Z","avatar_url":"https://github.com/opentracing-contrib.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status][ci-img]][ci] [![Released Version][maven-img]][maven]\n\n# OpenTracing Spring Cloud\nThis repository provides OpenTracing instrumentation for Spring Boot and its various extensions. It can be used with any OpenTracing\ncompatible implementation.\n\nIt contains auto-configurations which instruments and trace following Spring Boot projects:\n* Spring Web (RestControllers, RestTemplates, WebAsyncTask, WebClient, WebFlux)\n* @Async, @Scheduled, Executors\n* WebSocket STOMP\n* Feign, HystrixFeign\n* Hystrix\n* JMS\n* JDBC\n* Kafka\n* Mongo\n* Zuul\n* Reactor\n* RxJava\n* Redis\n* Standard logging - logs are added to active span\n* Spring Messaging - trace messages being sent through [Messaging Channels](https://docs.spring.io/spring-integration/reference/html/#messaging-channels-section)\n* RabbitMQ\n\n## Compatibility table\n\nThe following table shows versions with compatible [Spring Cloud](http://projects.spring.io/spring-cloud/) releases.\n\nopentracing-spring-cloud version | OpenTracing API | Spring Cloud version\n--- | --- | ---\n0.5.x | 0.33.0 | `Hoxton`\n0.4.x | 0.32.0 | `Hoxton`\n0.3.x | 0.32.0 | `Greenwich`\n0.2.x | 0.31.0 | `Finchley`, `Greenwich`\n0.1.x | 0.31.0 | `Dalston`, `Edgware`\n\n\n## Comparison to `spring-cloud-sleuth`\nThis project is similar to [spring-cloud-sleuth](https://github.com/spring-cloud/spring-cloud-sleuth),\nboth provide out of the box tracing solution for Spring Boot/Cloud. Some of the instrumentations in this\npackage are based on original `sleuth` work.\n\nHowever there are a couple of differences:\n* OpenTracing support in `sleuth` is limited to only one tracer implementation - [brave-opentracing](https://github.com/openzipkin-contrib/brave-opentracing). In other words it's not possible to use arbitrary OpenTracing tracer with `sleuth`.\n* `sleuth` might support different set of instrumentations.\n* Instrumentations in `sleuth` might add different set of tags and logs to represent the same events.\n\n## Note on dependencies\n\nIt's worth noting that the although OpenTracing Spring Cloud contains code for instrumenting a wealth of Spring projects,\nit however does not pull those dependencies automatically, marking them as optional dependencies instead.\n\nThat means that for example a simple Spring Boot REST API application can include OpenTracing Spring Cloud without the fear\nof polluting the classpath with Spring Cloud dependencies that are otherwise unneeded\n\n## Configuration\n\nThe preferred way to use this library is via vendored starters. These starters use\ninstrumentations from this library and expose specific tracer configuration in Spring\nnative way:\n\n* [Jaeger](https://github.com/opentracing-contrib/java-spring-jaeger)\n* [Zipkin](https://github.com/opentracing-contrib/java-spring-zipkin)\n\n### Explicitly tracer configuration\n\nJust add the following dependency in your pom.xml:\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eio.opentracing.contrib\u003c/groupId\u003e\n  \u003cartifactId\u003eopentracing-spring-cloud-starter\u003c/artifactId\u003e\n\u003c/dependency\u003e\n```\n, and provide OpenTracing tracer bean:\n```java\n@Bean\npublic io.opentracing.Tracer tracer() {\n  return new // tracer instance of your choice (Zipkin, Jaeger, LightStep)\n}\n```\n\n### Properties\n\nProperty| Default| Description\n------------- | ------------- | -------------\nopentracing.spring.cloud.reactor.enabled|true|Enable Reactor tracing.\nopentracing.spring.cloud.async.enabled|true|Enable tracing for @Async, Executor and WebAsyncTask/Callable.\nopentracing.spring.cloud.log.enabled|true|Add standard logging output to tracing system.\nopentracing.spring.cloud.scheduled.enabled|true|Enable @Scheduled tracing.\nopentracing.spring.cloud.feign.enabled|true|Enable Feign tracing.\nopentracing.spring.cloud.gateway.enabled|true|Enable Gateway tracing.\nopentracing.spring.cloud.hystrix.strategy.enabled|true|Enable Propagation of spans across threads using in Hystrix command tracing.\nopentracing.spring.cloud.jdbc.enabled|true|Enable JDBC tracing.\nopentracing.spring.cloud.jms.enabled|true|Enable JMS tracing.\nopentracing.spring.cloud.kafka.enabled|true|Enable Kafka tracing.\nopentracing.spring.cloud.mongo.enabled|true|Enable MongoDB tracing.\nopentracing.spring.cloud.reactor.enabled|true|Enable Reactor tracing.\nopentracing.spring.cloud.rxjava.enabled|true|Enable RxJava tracing.\nopentracing.spring.cloud.websocket.enabled|true|Enable Websocket tracing.\nopentracing.spring.cloud.zuul.enabled|true|Enable Zuul tracing.\nopentracing.spring.cloud.redis.enabled|true|Enable Redis tracing.\nopentracing.spring.cloud.redis.prefixOperationName|\"\"|Set a prefix for each Redis operation, e.g: MyPrefix.SET.\nopentracing.spring.cloud.jdbc.withActiveSpanOnly|false|Only trace JDBC calls if they are part of an active Span.\nopentracing.spring.cloud.jdbc.ignoreStatements|null|Set of JDBC statements to not trace.\n\n## Development\nMaven checkstyle plugin is used to maintain consistent code style based on [Google Style Guides](https://github.com/google/styleguide)\n\n```shell\n./mvnw clean install\nmake // to run tests including dependency tests, a specific profile can be specified by make PROFILES=nodeps\n```\n\n## Release\nFollow instructions in [RELEASE](RELEASE.md)\n\n   [ci-img]: https://travis-ci.org/opentracing-contrib/java-spring-cloud.svg?branch=master\n   [ci]: https://travis-ci.org/opentracing-contrib/java-spring-cloud\n   [maven-img]: https://img.shields.io/maven-central/v/io.opentracing.contrib/opentracing-spring-cloud.svg?maxAge=2592000\n   [maven]: http://search.maven.org/#search%7Cga%7C1%7Copentracing-spring-cloud\n\n## License\n\n[Apache 2.0 License](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopentracing-contrib%2Fjava-spring-cloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopentracing-contrib%2Fjava-spring-cloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopentracing-contrib%2Fjava-spring-cloud/lists"}