Package zipkin2.reporter.kafka
Class KafkaSender
java.lang.Object
zipkin2.Component
zipkin2.reporter.Sender
zipkin2.reporter.kafka.KafkaSender
- All Implemented Interfaces:
Closeable,AutoCloseable
public final class KafkaSender extends Sender
This sends (usually json v2) encoded spans to a Kafka topic.
Usage
This type is designed forthe async reporter.
Here's a simple configuration, configured for json:
sender = KafkaSender.create("localhost:9092");
Here's an example that overrides properties and protocol buffers encoding:
Properties overrides = new Properties();
overrides.put(ProducerConfig.MAX_BLOCK_MS_CONFIG, 5000);
sender = KafkaSender.newBuilder()
.bootstrapServers("host1:9092,host2:9092")
.overrides(overrides)
.encoding(Encoding.PROTO3)
.build();
Compatibility with Zipkin Server
Zipkin server should be v1.26 or higher.Implementation Notes
This sender is thread-safe. This sender is linked against Kafka 0.10.2+, which allows it to work with Kafka 0.10+ brokers
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classKafkaSender.BuilderConfiguration including defaults needed to send spans to a Kafka topic. -
Method Summary
Modifier and Type Method Description zipkin2.CheckResultcheck()Ensures there are no problems reading metadata about the topic.voidclose()static KafkaSendercreate(String bootstrapServers)Creates a sender that sendsEncoding.JSONmessages.zipkin2.codec.Encodingencoding()intmessageMaxBytes()intmessageSizeInBytes(int encodedSizeInBytes)intmessageSizeInBytes(List<byte[]> encodedSpans)static KafkaSender.BuildernewBuilder()zipkin2.Call<Void>sendSpans(List<byte[]> encodedSpans)This sends all of the spans as a single message.KafkaSender.BuildertoBuilder()StringtoString()
-
Method Details
-
create
Creates a sender that sendsEncoding.JSONmessages. -
newBuilder
-
toBuilder
-
messageSizeInBytes
- Specified by:
messageSizeInBytesin classSender
-
messageSizeInBytes
public int messageSizeInBytes(int encodedSizeInBytes)- Overrides:
messageSizeInBytesin classSender
-
encoding
public zipkin2.codec.Encoding encoding() -
messageMaxBytes
public int messageMaxBytes()- Specified by:
messageMaxBytesin classSender
-
sendSpans
This sends all of the spans as a single message.NOTE: this blocks until the metadata server is available.
-
check
public zipkin2.CheckResult check()Ensures there are no problems reading metadata about the topic.- Overrides:
checkin classzipkin2.Component
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classzipkin2.Component
-
toString
-