This component leverages zipkin-reporter-java interfaces to send spans to Amazon Kinesis using the V2 AWS SDK for collection and processing. Kinesis is an alternative to kafka that is fully managed in the AWS cloud.
A minimal configuration of this sender would be:
sender = KinesisSender.create("my-stream");Additionally, KinesisClient can be customized as needed.
kinesisClient = KinesisClient.builder()
.httpClient(UrlConnectionHttpClient.create())
.region(Region.US_EAST_1)
.endpointOverride(URI.create("http://localhost:4566"))
.credentialsProvider(
StaticCredentialsProvider.create(AwsBasicCredentials.create("x", "x")))
.build();
sender = KinesisSender.newBuilder()
.streamName("my-stream")
.kinesisClient(kinesisClient)
.build();The credentials that your service has requires the following permissions in order to function:
kinesis:DescribeStream for health checking
kinesis:PutRecord for placing spans on the stream
The message's binary data includes a list of spans. Supported encodings are the same as the http POST /spans body.
Encoding defaults to json, but can be overridden to PROTO3 if required.
collector-kinesis integrates with zipkin-server to pull spans off of a Kinesis stream instead of http or kafka.