# RabbitMQ

<!-- llms-txt-link: /llms.txt -->

> OpenTelemetry Java agent instrumentation

This instrumentation enables messaging spans for RabbitMQ message producers and consumers.

- **Name**: `rabbitmq-2.7`
- **Scope**: `io.opentelemetry.rabbitmq-2.7`
- **Target versions**: `com.rabbitmq:amqp-client:[2.7.0,)`
- **Library**: https://www.rabbitmq.com/client-libraries/java-api-guide

## Telemetry

- **Span attributes**: `messaging.system`, `network.peer.address`, `network.peer.port`, `network.type`, `messaging.destination.name`, `messaging.message.body.size`, `messaging.operation`, `messaging.rabbitmq.destination.routing_key`, `rabbitmq.command`, `rabbitmq.queue`, `rabbitmq.record.queue_time_ms`, `rabbitmq.delivery_mode`

## Configuration

| Option | Type | Default | Description |
| --- | --- | --- | --- |
| `otel.instrumentation.messaging.experimental.capture-headers` | list |  | A comma-separated list of header names to capture as span attributes. |
| `otel.instrumentation.messaging.experimental.receive-telemetry.enabled` | boolean | false | Enables the creation of consumer spans on messaging receive operations. These spans will measure the time between receiving a message and the consumer processing that message. |
| `otel.instrumentation.rabbitmq.experimental-span-attributes` | boolean | false | Enables experimental span attributes `rabbitmq.command`, `rabbitmq.delivery_mode`, `rabbitmq.queue`, and `rabbitmq.record.queue_time_ms`. |

## Data

- **JSON**: [/data/javaagent/instrumentations/rabbitmq-2.7/rabbitmq-2.7-cd52fd7bbc1d.json](/data/javaagent/instrumentations/rabbitmq-2.7/rabbitmq-2.7-cd52fd7bbc1d.json)
- **Explore**: [/java-agent/instrumentation/rabbitmq-2.7](/java-agent/instrumentation/rabbitmq-2.7)
