/zipkin-aws

Reporters and collectors for use in Amazon's cloud

Primary LanguageJavaApache License 2.0Apache-2.0

zipkin-aws

Gitter chat Build Status Maven Central

Shared libraries that provide Zipkin integration with AWS Kinesis, SQS, and X-Ray. Requires JRE 8 or later.

Usage

These components provide Zipkin Reporters and Senders, which build off interfaces provided by the zipkin-reporters-java, and and Collectors, which are used in a Zipkin server.

We also have tracing libraries that extend Brave.

Tracing libraries

Tracing libraries extend Brave and ensure Amazon libraries are visible in your traces.

Instrumentation Description
AWS SDK Traces AmazonWebServiceClient
AWS SDK V2 Traces SdkClient
AWS SQS Messaging Traces AmazonSQS

We also have a library to read Amazon's trace header.

Reporters and Senders

The component in a traced application that sends timing data (spans) out of process is called a Reporter. It is responsible for handling the queueing and encoding of outbound spans.

Reporters that are sending Zipkin data to Zipkin typically make use of a Sender, which implements the wire protocol to a particular technology used to send the encoded spans. Typically Senders are called on interval by an async reporter.

NOTE: Applications can be written in any language. While we currently only have Reporters and Senders in Java, senders in other languages are welcome.

Reporter Description
X-Ray UDP Reports spans to X-Ray, AWS's alternative to Zipkin.
Sender Description
SQS Sends tracing data to Zipkin using SQS, a message queue service.
SQS v2 Sends tracing data to Zipkin using SQS, a message queue service.
Kinesis Sends tracing data to Zipkin using Kinesis, an alternative similar to Kafka.

Collectors

The component in a zipkin server that receives trace data is called a collector. This decodes spans reported by applications and persists them to a configured storage component.

Collector Description
SQS An alternative to Kafka.
Kinesis An alternative to Kafka.

Server integration

Integration with Zipkin server is done for you in [Docker][docker]. If you cannot use Docker, you can integrate a Java module instead.

Configuration layered over Zipkin server is documented here.

Artifacts

All artifacts publish to the group ID "io.zipkin.aws". We use a common release version for all components.

Library Releases

Releases are at Sonatype and Maven Central

Library Snapshots

Snapshots are uploaded to Sonatype after commits to master.

Docker Images

Released versions of zipkin-aws are published to Docker Hub as openzipkin/zipkin-aws and GitHub Container Registry as ghcr.io/openzipkin/zipkin-aws.

See docker for details.