Back to snippets
pyroscope_otel_span_processor_tracing_profiling_integration.py
pythonThis 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)