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.
npm install --save @opentelemetry/exporter-zipkin
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');
// Add your zipkin url (`http://localhost:9411/api/v2/spans` is used as
// default) and application name to the Zipkin options.
// You can also define your custom headers which will be added automatically.
const options = {
headers: {
'my-header': 'header-value',
},
url: 'your-zipkin-url',
// optional interceptor
getExportRequestHeaders: () => {
return {
'my-header': 'header-value',
}
}
}
const exporter = new ZipkinExporter(options);
Now, register the exporter and start tracing.
const tracerProvider = new NodeTracerProvider({
spanProcessors: [new BatchSpanProcessor(exporter)]
})
const tracer = traceProvider.getTracer('my-tracer')
You can use built-in SimpleSpanProcessor
or BatchSpanProcessor
or write your own.
-
SimpleSpanProcessor: The implementation of
SpanProcessor
that passes ended span directly to the configuredSpanExporter
. -
BatchSpanProcessor: The implementation of the
SpanProcessor
that batches ended spans and pushes them to the configuredSpanExporter
. It is recommended to use thisSpanProcessor
for better performance and optimization.
- 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.
Please visit the Zipkin UI endpoint http://localhost:9411
- For more information on OpenTelemetry, visit: https://opentelemetry.io/
- For more about OpenTelemetry JavaScript: https://github.com/open-telemetry/opentelemetry-js
- For Zipkin project at https://zipkin.io/
- For help or feedback on this project, join us in GitHub Discussions
Apache 2.0 - See LICENSE for more information.