Skip to content

Latest commit

 

History

History
80 lines (57 loc) · 3.34 KB

File metadata and controls

80 lines (57 loc) · 3.34 KB

OpenTelemetry Zipkin Trace Exporter

NPM Published Version Apache License

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');

// 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 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.