Distributed Tracing

May 30, 2026 | 5 min read

OpenTelemetry Spans

from opentelemetry import trace

tracer = trace.get_tracer(__name__)

def process_with_trace(data):
    with tracer.start_as_current_span("process") as span:
        span.set_attribute("record.count", len(data))
        result = compiled_process(data)
        span.set_attribute("result.size", len(result))
        return result

Context Propagation

Pyvorin does not modify tracing context. Propagate trace headers through your HTTP client or message broker as usual.

Jaeger Export

from opentelemetry.exporter.jaeger.thrift import JaegerExporter
exporter = JaegerExporter(agent_host_name="localhost", agent_port=6831)