{"id":21152973,"url":"https://github.com/opentracing-contrib/java-spring-rabbitmq","last_synced_at":"2025-09-21T06:27:12.426Z","repository":{"id":53288499,"uuid":"132743764","full_name":"opentracing-contrib/java-spring-rabbitmq","owner":"opentracing-contrib","description":"OpenTracing RabbitMQ instrumentation","archived":false,"fork":false,"pushed_at":"2023-07-06T09:27:57.000Z","size":278,"stargazers_count":17,"open_issues_count":8,"forks_count":21,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-07-09T10:43:23.639Z","etag":null,"topics":["instrumentation","messaging","messaging-services","microservices","rabbit","rabbitmq","spring","spring-amqp","spring-boot","tracing"],"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":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null}},"created_at":"2018-05-09T10:58:23.000Z","updated_at":"2025-05-13T03:50:01.000Z","dependencies_parsed_at":"2025-07-09T10:40:57.548Z","dependency_job_id":"e840d642-9c77-4bba-b144-3f679405e2cc","html_url":"https://github.com/opentracing-contrib/java-spring-rabbitmq","commit_stats":null,"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/opentracing-contrib/java-spring-rabbitmq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentracing-contrib%2Fjava-spring-rabbitmq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentracing-contrib%2Fjava-spring-rabbitmq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentracing-contrib%2Fjava-spring-rabbitmq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentracing-contrib%2Fjava-spring-rabbitmq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opentracing-contrib","download_url":"https://codeload.github.com/opentracing-contrib/java-spring-rabbitmq/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentracing-contrib%2Fjava-spring-rabbitmq/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267814794,"owners_count":24148329,"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","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["instrumentation","messaging","messaging-services","microservices","rabbit","rabbitmq","spring","spring-amqp","spring-boot","tracing"],"created_at":"2024-11-20T10:47:53.303Z","updated_at":"2025-09-21T06:27:07.382Z","avatar_url":"https://github.com/opentracing-contrib.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"![maintenance-status](https://img.shields.io/badge/maintenance-deprecated-red.svg)\n[![No Maintenance Intended](http://unmaintained.tech/badge.svg)](http://unmaintained.tech/)\n[![Build Status][ci-img]][ci] [![Released Version][maven-img]][maven]\n\n# OpenTracing Spring RabbitMQ\n\nProvides message tracing for RabbitMQ through [Spring AMQP](https://github.com/spring-projects/spring-amqp).\nIt can be used with any OpenTracing compatible implementation.\n\n## Compatibility table\n\nVersion | OpenTracing API | Spring Boot version\n--- | --- | ---\n0.x.x | 0.31.0 | 1.5.x\n1.x.x | 0.31.0 | 2.1.x\n1.0.2 | 0.32.0 | 2.1.x\n2.0.x | 0.32.0 | 2.1.x\n3.0.x | 0.33.0 | 2.1.x\n\n## Sent messages\nThe following methods are instrumented:\n\nClass | Method | Instrumented\n--- | --- | --- \n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `void send(Message message)` | \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `void send(String routingKey, Message message)` | \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `void send(String exchange, String routingKey, Message message)` | \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `void convertAndSend(Object message)` | \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `void convertAndSend(String routingKey, Object message)` | \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `void convertAndSend(String exchange, String routingKey, Object message)` | \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `void convertAndSend(Object message, MessagePostProcessor messagePostProcessor)` | \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `void convertAndSend(String routingKey, Object message, MessagePostProcessor messagePostProcessor)` | \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `void convertAndSend(String exchange, String routingKey, Object message, MessagePostProcessor messagePostProcessor)` |  \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `void convertAndSend(String exchange, String routingKey, Object message, @Nullable CorrelationData correlationData)` |  \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `Message sendAndReceive(Message message)` | \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `Message sendAndReceive(String routingKey, Message message)` | \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `Message sendAndReceive(String exchange, String routingKey, Message message)` | \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `Object convertSendAndReceive(Object message)` | \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `Object convertSendAndReceive(String routingKey, Object message)` | \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `Object convertSendAndReceive(String exchange, String routingKey, Object message)` | \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `Object convertSendAndReceive(Object message, MessagePostProcessor messagePostProcessor)` | \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `Object convertSendAndReceive(String routingKey, Object message, MessagePostProcessor messagePostProcessor)` | \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `Object convertSendAndReceive(String exchange, String routingKey, Object message, MessagePostProcessor messagePostProcessor)` | \u0026#10004;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `\u003cT\u003e T convertSendAndReceiveAsType(Object message, ParameterizedTypeReference\u003cT\u003e responseType)` | \u0026#10060;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `\u003cT\u003e T convertSendAndReceiveAsType(String routingKey, Object message,ParameterizedTypeReference\u003cT\u003e responseType)` | \u0026#10060;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `\u003cT\u003e T convertSendAndReceiveAsType(String routingKey, Object message,  MessagePostProcessor messagePostProcessor, ParameterizedTypeReference\u003cT\u003e responseType)` | \u0026#10060;\n[AmqpTemplate](https://docs.spring.io/spring-amqp/api/index.html?org/springframework/amqp/core/AmqpTemplate.html) | `\u003cT\u003e T convertSendAndReceiveAsType(String exchange, String routingKey, Object message,MessagePostProcessor messagePostProcessor, ParameterizedTypeReference\u003cT\u003e responseType)` | \u0026#10060;\n[RabbitTemplate](https://docs.spring.io/spring-amqp/api/org/springframework/amqp/rabbit/core/RabbitTemplate.html) | `Message sendAndReceive(final String exchange, final String routingKey, final Message message, @Nullable CorrelationData correlationData)` | \u0026#10004;\n[RabbitTemplate](https://docs.spring.io/spring-amqp/api/org/springframework/amqp/rabbit/core/RabbitTemplate.html) | `Object convertSendAndReceive(final String exchange, final String routingKey, final Object message, @Nullable CorrelationData correlationData)` | \u0026#10004;\n\n## Received messages\nAt startup a `RabbitMqReceiveTracingInterceptor`, will be added to`SimpleMessageListenerContainer` or\n`DirectMessageListenerContainer`advice chain, depending on your configuration.\n\n `@RabbitListener` will also benefit from it.\n \n## Span decorator\nBy default, a `RabbitMqSpanDecorator` is provided, with the following attributes:\n### On send span\n* component: rabbitmq\n* exchange: [exchange_name]\n* messageid: [message_id]\n* routingkey: [routing_key]\n\n### On receive span\n* component: rabbitmq\n* exchange: [exchange_name]\n* messageid: [message_id]\n* routingkey: [routing_key]\n* consumerqueue: [consumer_queue]\n\n### On send reply\nNothing by default.\n\n### On error\n* event: error key\n* error.object: exception\n\n\u003e **Note**: you can customize your spans by declaring an overridden `RabbitMqSpanDecorator` bean.\n\n## Usage\n\nThis library is embedded in [java-spring-cloud](https://github.com/opentracing-contrib/java-spring-cloud)\n\n### Usage with Jaeger tracer\nIf you want to use [Jaeger](https://www.jaegertracing.io/) as tracer,\nyou can benefit directly from it by importing [java-spring-jaeger](https://github.com/opentracing-contrib/java-spring-jaeger).\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eio.opentracing.contrib\u003c/groupId\u003e\n  \u003cartifactId\u003eopentracing-spring-jaeger-cloud-starter\u003c/artifactId\u003e\n\u003c/dependency\u003e\n```\n\n### Usage with Zipkin tracer\nIf you want to use [Zipkin](https://zipkin.io/) as tracer, \nyou can benefit directly from it by importing [java-spring-zipkin](https://github.com/opentracing-contrib/java-spring-zipkin).\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eio.opentracing.contrib\u003c/groupId\u003e\n  \u003cartifactId\u003eopentracing-spring-zipkin-cloud-starter\u003c/artifactId\u003e\n\u003c/dependency\u003e\n```\n\n### Standalone usage\n\u003e **Note**: make sure that an `io.opentracing.Tracer` bean is available. **It is not provided by this library**.\n#### With Spring Boot\nAdd the following starter dependency to your pom.xml:\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eio.opentracing.contrib\u003c/groupId\u003e\n  \u003cartifactId\u003eopentracing-spring-rabbitmq-starter\u003c/artifactId\u003e\n\u003c/dependency\u003e\n```\n\n#### With Spring\nAdd the following dependency to your pom.xml:\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eio.opentracing.contrib\u003c/groupId\u003e\n  \u003cartifactId\u003eopentracing-spring-rabbitmq\u003c/artifactId\u003e\n\u003c/dependency\u003e\n```\n## Jaeger UI example\n![Alt text](img/produce-consumer-jaeger.png?raw=true \"Jaeger UI\")\n## Development\nMaven checkstyle plugin is used to maintain consistent code style based on [Google Style Guides](https://github.com/google/styleguide)\n```shell\n./mvnw clean install\n```\n\n## Release\nFollow instructions in [RELEASE](RELEASE.md)\n\n[ci-img]: https://travis-ci.org/opentracing-contrib/java-spring-rabbitmq.svg?branch=master\n[ci]: https://travis-ci.org/opentracing-contrib/java-spring-rabbitmq\n[maven-img]: https://img.shields.io/maven-central/v/io.opentracing.contrib/opentracing-spring-rabbitmq.svg?maxAge=2592000\n[maven]: http://search.maven.org/#search%7Cga%7C1%7Copentracing-spring-rabbitmq\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopentracing-contrib%2Fjava-spring-rabbitmq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopentracing-contrib%2Fjava-spring-rabbitmq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopentracing-contrib%2Fjava-spring-rabbitmq/lists"}