Class RabbitMQSender

java.lang.Object
zipkin2.Component
zipkin2.reporter.Sender
zipkin2.reporter.amqp.RabbitMQSender
All Implemented Interfaces:
Closeable, AutoCloseable

public final class RabbitMQSender
extends Sender
This sends (usually json v2) encoded spans to a RabbitMQ queue.

Usage

This type is designed for the async reporter.

Here's a simple configuration, configured for json:


 sender = RabbitMQSender.create("localhost:5672");
 

Here's an example with an explicit SSL connection factory and protocol buffers encoding:


 connectionFactory = new ConnectionFactory();
 connectionFactory.setHost("localhost");
 connectionFactory.setPort(5671);
 connectionFactory.useSslProtocol();
 sender = RabbitMQSender.newBuilder()
   .connectionFactory(connectionFactory)
   .encoding(Encoding.PROTO3)
   .build();
 

Compatibility with Zipkin Server

Zipkin server should be v2.1 or higher.

Implementation Notes

The sender does not use RabbitMQ Publisher Confirms, so messages considered sent may not necessarily be received by consumers in case of RabbitMQ failure.

This sender is thread-safe: a channel is created for each thread that calls sendSpans(List).