pyroscope-otel
A library providing profiling functionalities related to OpenTelemetry
Decision gist · record as of 2026-08-14
Yes, if you already use both OpenTelemetry and Pyroscope and need to correlate traces with profiles. The package is actively maintained, has no known vulnerabilities, and installs with low friction. It is a thin, purpose-built integration layer rather than a general-purpose tool, so install it only if you have both tracing and profiling infrastructure in place.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Pyroscope must be configured before creating spans.
- Requires Python 3.10 or later.
- Low install friction with a pure-Python wheel.
License · maintenance · safety
permissive license (permissive) — Apache License 2.0 (permissive) permits commercial and derivative use with minimal restrictions; attribution and license reproduction required in distributions.
last release 2026-06-30 (45 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,459,832 downloads/mo, #3,882 on PyPI
Alternatives
Verify before relying
pip install pyroscope-otel
from pyroscope import configure as pyroscope_configure
from opentelemetry.sdk.trace import TracerProvider
from pyroscope.otel import PyroscopeSpanProcessor
pyroscope_configure(app_name="my-app", server_address="http://localhost:4040")
provider = TracerProvider()
provider.add_span_processor(PyroscopeSpanProcessor())- Whether the package works with Python versions between 3.10 and current stable, or only the latest minor release
- Performance overhead of attaching profile IDs and trace tags to every root span
- Compatibility with trace exporters other than Grafana Tempo
What it is and what it does
Pyroscope-otel is a bridge between OpenTelemetry tracing and Pyroscope continuous profiling. It provides a span processor that automatically attaches a profile identifier to the root span of each trace, creating a direct link between traces in Grafana Tempo and their corresponding performance profiles in Pyroscope. On the profiling side, it adds thread-level tags (span_id, span_name, trace_id) for the lifetime of the root span, enabling filtering and correlation of profile samples by trace.
The package requires both Pyroscope and OpenTelemetry to be independently configured in your application. It works with manual instrumentation (explicit TracerProvider setup) and auto-instrumentation frameworks, though Pyroscope configuration remains mandatory in all cases. The integration is lightweight—it depends only on opentelemetry-api, opentelemetry-sdk, and pyroscope-io—and installs as a pure Python wheel with no compiled dependencies.
Use it for
- Correlate slow traces in Grafana Tempo with CPU/memory profiles in Pyroscope to pinpoint performance bottlenecks
- Navigate from a distributed trace to the exact profiling data for that transaction to debug latency issues
- Filter profile samples by trace ID on the Pyroscope server to isolate performance data for specific requests
- Monitor applications using both OpenTelemetry and Pyroscope without maintaining separate correlation logic
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you already use both OpenTelemetry and Pyroscope and need to correlate traces with profiles.
The package is actively maintained, has no known vulnerabilities, and installs with low friction. It is a thin, purpose-built integration layer rather than a general-purpose tool, so install it only if you have both tracing and profiling infrastructure in place.
Install
pyroscope-otel on PyPI
Before you install
Low install friction with a pure-Python wheel. Actively maintained as of 45 days ago. Requires Python 3.10 or later.
Pyroscope must be configured before creating spans. Requires Python 3.10 or later.
License in practice
Apache License 2.0 (permissive) permits commercial and derivative use with minimal restrictions; attribution and license reproduction required in distributions.
Quickstart
pip install pyroscope-otel
from pyroscope import configure as pyroscope_configure
from opentelemetry.sdk.trace import TracerProvider
from pyroscope.otel import PyroscopeSpanProcessor
pyroscope_configure(app_name="my-app", server_address="http://localhost:4040")
provider = TracerProvider()
provider.add_span_processor(PyroscopeSpanProcessor())
Verify before relying
- Whether the package works with Python versions between 3.10 and current stable, or only the latest minor release
- Performance overhead of attaching profile IDs and trace tags to every root span
- Compatibility with trace exporters other than Grafana Tempo
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagesopentelemetry-apiopentelemetry-sdkpyroscope-io |
| Maintenance | Actively maintained 45 days since the last release |
| First released | |
| Downloads | 1,459,832 / month, #3,882 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: pyroscope_otel-1.1.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “opentelemetry profiling integration”
- pyroscope-otelConnects OpenTelemetry tracing with Pyroscope continuous profiling,…
- pytest-opentelemetryA pytest plugin that instruments test runs with OpenTelemetry,…
- nvidia-natIntegrates enterprise agents with data sources and tools across any…
Give your agent the search over MCP, or paste the wish link into any chat.
More Monitoring packages
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
Provides generated Python code for OpenTelemetry semantic conventions, enabling standardized attribute naming and constant definitions for instrumentation and telemetry collection.
Install it if you are using OpenTelemetry and want to follow semantic conventions correctly.
Provides the reference implementation of the OpenTelemetry API for collecting and exporting traces, metrics, and logs from Python applications.
Provides the abstract API and interfaces for OpenTelemetry instrumentation in Python, defining how to emit traces, metrics, and logs without tying code to a specific SDK implementation.
Exports OpenTelemetry observability data to an OpenTelemetry Collector using Protobuf-encoded messages over HTTP.
Install it if you are using OpenTelemetry in Python and need to send data to a Collector over HTTP.
Provides automatic instrumentation commands and programmatic APIs to inject distributed tracing into Python applications without code changes, detecting and instrumenting packages used by your program.
Install it if you need distributed tracing without code changes and have compatible instrumented packages in your environment.
See also azure-core-tracing-opentelemetry · pyroscope-io · otel-extensions · opentelemetry-exporter-gcp-trace · arize-otel · otel-ci · opentelemetry-propagator-jaeger · opentelemetry-instrumentation-sklearn · opentelemetry-sdk-extension-aws · opentelemetry-processor-baggage