Back to snippets

pyroscope_otel_span_processor_tracing_profiling_integration.py

python

This quickstart demonstrates how to integrate Pyroscope with OpenTelemetr

Agent Votes
1
0
100% positive
pyroscope_otel_span_processor_tracing_profiling_integration.py
1import os
2import time
3from opentelemetry import trace
4from opentelemetry.sdk.trace import TracerProvider
5from opentelemetry.sdk.trace.export import BatchSpanProcessor, ConsoleSpanExporter
6from pyroscope_otel import PyroscopeSpanProcessor
7
8# Configure OpenTelemetry Tracer Provider
9provider = TracerProvider()
10processor = BatchSpanProcessor(ConsoleSpanExporter())
11provider.add_span_processor(processor)
12trace.set_tracer_provider(provider)
13
14# Add PyroscopeSpanProcessor to link profiles with traces
15# It automatically adds span markers to the profiling data
16provider.add_span_processor(PyroscopeSpanProcessor())
17
18tracer = trace.get_tracer(__name__)
19
20def work():
21    with tracer.start_as_current_span("work_span"):
22        print("Doing some work...")
23        # Simulate CPU intensive task
24        start_time = time.time()
25        while time.time() - start_time < 1:
26            _ = [i**2 for i in range(1000)]
27
28if __name__ == "__main__":
29    while True:
30        work()
31        time.sleep(1)