Zipkin Proto HTTP Span Exporter for OpenTelemetry

1.41.0 · active · verified Thu Apr 16

The `opentelemetry-exporter-zipkin-proto-http` library provides a Span Exporter for OpenTelemetry Python, enabling applications to send tracing data to a Zipkin collector using Protobuf over HTTP. It is an integral part of the OpenTelemetry Python project, which maintains an active release cadence, with the current version being 1.41.0.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to set up the Zipkin Proto HTTP Exporter to send traces. It initializes a `TracerProvider`, configures `ZipkinExporter` with an endpoint (defaulting to `http://localhost:9411/api/v2/spans` or an environment variable), attaches it to a `BatchSpanProcessor`, and creates a simple span. Remember to run a Zipkin collector (e.g., via `docker run --rm -d -p 9411:9411 --name zipkin openzipkin/zipkin`) for traces to be received.

import os
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.zipkin.proto.http import ZipkinExporter

# Configure the TracerProvider
provider = TracerProvider()
trace.set_tracer_provider(provider)

# Configure Zipkin Exporter
# The endpoint can also be configured via OTEL_EXPORTER_ZIPKIN_ENDPOINT environment variable
zipkin_endpoint = os.environ.get('OTEL_EXPORTER_ZIPKIN_ENDPOINT', 'http://localhost:9411/api/v2/spans')
zipkin_exporter = ZipkinExporter(endpoint=zipkin_endpoint)

# Add the exporter to a BatchSpanProcessor
span_processor = BatchSpanProcessor(zipkin_exporter)
provider.add_span_processor(span_processor)

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

with tracer.start_as_current_span("my-zipkin-span") as span:
    span.set_attribute("event.name", "Quickstart event")
    span.add_event("Processing data")
    print("Hello from OpenTelemetry with Zipkin!")

# Ensure all spans are exported before application exit
provider.shutdown()

view raw JSON →