This is an OpenTelemetry exporter that sends span data using the io.zipkin.reporter2:zipkin-reporter library.
By default, this POSTs json in Zipkin format to a specified HTTP URL. This could be to a Zipkin service, or anything that consumes the same format.
You can alternatively use other formats, such as protobuf, or override the Sender
to use a non-HTTP transport, such as Kafka.
The Zipkin span exporter can be configured programmatically.
An example of simple Zipkin exporter initialization. In this case
spans will be sent to a Zipkin endpoint running on localhost
:
ZipkinSpanExporter exporter =
ZipkinSpanExporter.builder()
.setEndpoint("http://localhost/api/v2/spans")
.setServiceName("my-service")
.build();
Service name and Endpoint can be also configured via environment variables or system properties.
// Using environment variables
ZipkinSpanExporter exporter =
ZipkinSpanExporter.builder()
.readEnvironmentVariables()
.build()
// Using system properties
ZipkinSpanExporter exporter =
ZipkinSpanExporter.builder()
.readSystemProperties()
.build()
The Zipkin span exporter will look for the following environment variables / system properties:
OTEL_ZIPKIN_SERVICE_NAME
/otel.zipkin.service.name
OTEL_ZIPKIN_ENDPOINT
/otel.zipkin.endpoint
As with the OpenTelemetry SDK itself, this exporter is compatible with Java 8+ and Android API level 24+.
The code in this module is based on the OpenCensus Zipkin exporter code.