Package com.rabbitmq.client.observation
Interface ObservationCollector
-
- All Known Implementing Classes:
NoOpObservationCollector
public interface ObservationCollector
API to instrument operations in the AMQP client. The supported operations are publishing, asynchronous delivery, and synchronous delivery (basic.get
).Implementations can gather information and send it to tracing backends. This allows e.g. following the processing steps of a given message through different systems.
This is considered an SPI and is susceptible to change at any time.
- Since:
- 5.19.0
- See Also:
ConnectionFactory.setObservationCollector( ObservationCollector)
,com.rabbitmq.client.observation.micrometer.MicrometerObservationCollectorBuilder
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
ObservationCollector.BasicGetCall
Underlyingbasic.get
call.static interface
ObservationCollector.ConnectionInfo
Connection information.static interface
ObservationCollector.PublishCall
Underlying publishing call.
-
Field Summary
Fields Modifier and Type Field Description static ObservationCollector
NO_OP
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Consumer
basicConsume(java.lang.String queue, java.lang.String consumerTag, Consumer consumer)
Decorate consumer registration.GetResponse
basicGet(ObservationCollector.BasicGetCall call, java.lang.String queue)
Decorate message polling withbasic.get
.void
publish(ObservationCollector.PublishCall call, AMQP.Basic.Publish publish, AMQP.BasicProperties properties, byte[] body, ObservationCollector.ConnectionInfo connectionInfo)
Decorate message publishing.
-
-
-
Field Detail
-
NO_OP
static final ObservationCollector NO_OP
-
-
Method Detail
-
publish
void publish(ObservationCollector.PublishCall call, AMQP.Basic.Publish publish, AMQP.BasicProperties properties, byte[] body, ObservationCollector.ConnectionInfo connectionInfo) throws java.io.IOException
Decorate message publishing.Implementations are expected to call
publish( PublishCall, AMQP.Basic.Publish, AMQP.BasicProperties, byte[], ConnectionInfo)
to make sure the message is actually sent.- Parameters:
call
-publish
-properties
-body
-connectionInfo
-- Throws:
java.io.IOException
-
basicConsume
Consumer basicConsume(java.lang.String queue, java.lang.String consumerTag, Consumer consumer)
Decorate consumer registration.Implementations are expected to decorate the appropriate
Consumer
callbacks. The originalConsumer
behavior should not be changed though.- Parameters:
queue
-consumerTag
-consumer
-- Returns:
-
basicGet
GetResponse basicGet(ObservationCollector.BasicGetCall call, java.lang.String queue)
Decorate message polling withbasic.get
.Implementations are expected to
basicGet( BasicGetCall, String)
and return the same result.- Parameters:
call
-queue
-- Returns:
-
-