OpenTelemetry Zipkin Trace Exporter
OpenTelemetry Zipkin Trace Exporter allows the user to send collected traces to Zipkin.
Zipkin is a distributed tracing system. It helps gather timing data needed to troubleshoot latency problems in microservice architectures. It manages both the collection and lookup of this data.
Installation
npm install --save @opentelemetry/exporter-zipkin
Usage in Node and Browser
Install the exporter on your application and pass the options. serviceName
is an optional string. If omitted, the exporter will first try to get the service name from the Resource. If no service name can be detected on the Resource, a fallback name of "OpenTelemetry Service" will be used.
const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
const options = {
headers: {
'my-header': 'header-value',
},
url: 'your-zipkin-url',
getExportRequestHeaders: () => {
return {
'my-header': 'header-value',
}
}
}
const exporter = new ZipkinExporter(options);
Now, register the exporter and start tracing.
tracer.addSpanProcessor(new BatchSpanProcessor(exporter));
You can use built-in SimpleSpanProcessor
or BatchSpanProcessor
or write your own.
- SimpleSpanProcessor: The implementation of
SpanProcessor
that passes ended span directly to the configured SpanExporter
. - BatchSpanProcessor: The implementation of the
SpanProcessor
that batches ended spans and pushes them to the configured SpanExporter
. It is recommended to use this SpanProcessor
for better performance and optimization.
Options
- getExportRequestHeaders - optional interceptor that allows adding new headers every time time the exporter is going to send spans.
This is optional and can be used if headers are changing over time. This is a sync callback.
Viewing your traces
Please visit the Zipkin UI endpoint http://localhost:9411
Useful links
License
Apache 2.0 - See LICENSE for more information.