OpenTelemetry Zipkin Exporter

1.41.0 · active · verified Thu Apr 16

The `opentelemetry-exporter-zipkin` library provides a Span Exporter for OpenTelemetry Python, enabling the export of trace data to Zipkin. It is part of the OpenTelemetry Python project, currently at version 1.41.0, and typically releases updates on a monthly or bi-monthly basis.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to configure OpenTelemetry Python to send traces to a Zipkin collector. It sets up a `TracerProvider`, `BatchSpanProcessor`, and `ZipkinSpanExporter`, using environment variables for the Zipkin endpoint, and then creates a simple traced operation. Ensure a Zipkin collector is running and accessible at the specified endpoint.

import os
from opentelemetry import trace
from opentelemetry.exporter.zipkin import ZipkinSpanExporter
from opentelemetry.sdk.resources import Resource, SERVICE_NAME
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor

# Configure the service name
resource = Resource.create({
    SERVICE_NAME: "my-zipkin-service"
})

# Configure TracerProvider
tracer_provider = TracerProvider(resource=resource)

# Get Zipkin collector endpoint from environment variable or use default
zipkin_endpoint = os.environ.get(
    "OTEL_EXPORTER_ZIPKIN_ENDPOINT", 
    "http://localhost:9411/api/v2/spans"
)

# Configure ZipkinSpanExporter
zipkin_exporter = ZipkinSpanExporter(endpoint=zipkin_endpoint)

# Configure BatchSpanProcessor and add exporter
span_processor = BatchSpanProcessor(zipkin_exporter)
tracer_provider.add_span_processor(span_processor)

# Set the global TracerProvider
trace.set_tracer_provider(tracer_provider)

# Get a tracer and create a span
tracer = trace.get_tracer(__name__)

with tracer.start_as_current_span("my-operation"):
    print("Hello from OpenTelemetry with Zipkin!")

print(f"Traces sent to Zipkin endpoint: {zipkin_endpoint}")

view raw JSON →