Freedom251 › Continuous Profiling Tools
OpenTelemetry eBPF Profiler

What OpenTelemetry eBPF Profiler is
OpenTelemetry eBPF Profiler is a free, open-source profiler for Linux systems, deployed on infrastructure you host. It uses eBPF to profile across processes and languages, with stack traces that can extend from kernel space through system libraries into high-level runtimes. It also captures native inline frames. Supported languages include C/C++, Rust, Zig, Go, HotSpot JVM, Python, Ruby, PHP, Node.js, V8, Perl, Erlang and .NET.
Profiling does not require agents or libraries inside the processes being observed. Supported runtimes can be unwound in their default configurations without instrumentation, runtime reconfiguration, or interpreter and VM restarts. The project reports tested upper limits of 1% CPU and 250 MB of memory, with typical use well below those ceilings. The supported deployment path is as a receiver in the OpenTelemetry Collector. Pyroscope is named as a database that accepts OpenTelemetry profiling data, while mature production-ready backends have yet to emerge. The profiler implements the Alpha OpenTelemetry Profiles signal; its implementation is functional but still evolving. It supports amd64 and arm64 builds. Recent commits may require Linux kernel 5.10 or later.
Who it suits
It suits teams that need whole-system, cross-language profiling on Linux and want to avoid injecting agents into profiled processes. It is also relevant to OpenTelemetry Collector users who can work with an evolving Profiles signal and backend options.
What it does well
- Profiles native code and many language runtimes.
- Stack traces span kernel, system libraries, and high-level languages.
- Does not load agents or libraries into profiled processes.
- No runtime instrumentation or interpreter and VM restarts required.
- Project reports tested ceilings of 1% CPU and 250 MB memory.
- Free and open source under Apache 2.0 and GPL 2.0 licenses.
What to know first
- Linux-only; macOS and Windows require a Linux VM.
- Recent commits may require Linux kernel 5.10 or later.
- Standalone binaries are unsupported and unsuitable for production.
- The Profiles signal implementation is still evolving.
Limits
The project is Linux-only, and recent commits may require kernel 5.10 or newer. The supported deployment path is the OpenTelemetry Collector receiver; standalone agent and local receiver binaries are unsupported and unsuitable for production. The Alpha Profiles signal implementation is functional but evolving, and mature production-ready backends have yet to emerge.
Getting started
- Open the project website at https://github.com/open-telemetry/opentelemetry-ebpf-profiler.
- Use a Linux environment; builds are provided for amd64 and arm64.
- Plan to deploy it as a receiver in the OpenTelemetry Collector.
- Consider Pyroscope as a named database option for ingesting OpenTelemetry profiling data.
- Use the project’s private vulnerability reporting channel for security reports.
Verdict
Choose it if you need self-hosted, whole-system Linux profiling across native code and multiple runtimes without modifying the profiled applications. Look elsewhere if you require a supported standalone agent, a mature production-ready backend, or native macOS or Windows operation.
Questions
Is OpenTelemetry eBPF Profiler free?
Yes. It is free and open source. The main project is licensed under Apache License 2.0, and its eBPF source code under GPL 2.0.
Which operating systems and architectures does it support?
It is Linux-only, with provided build targets for amd64 and arm64. macOS and Windows users need a Linux VM to build and run the agent.
Which languages can it profile?
It supports C/C++, Rust, Zig, Go, HotSpot JVM, Python, Ruby, PHP, Node.js, V8, Perl, Erlang and .NET.
How is it meant to be deployed?
The supported configuration is as a receiver in the OpenTelemetry Collector. Standalone profiling-agent and local receiver binaries are unsupported and not suitable for production deployment.
Can it send profiles to a backend?
Pyroscope is named as an open-source database that natively ingests OpenTelemetry profiling data. The project says mature production-ready backends have yet to emerge.
Does profiling change the profiled applications?
It does not require loading agents or libraries into profiled processes. Supported language unwinding does not require reconfiguration, instrumentation, or interpreter and VM restarts.
Facts from OpenTelemetry eBPF Profiler's own pages
- Architecture
- The project supports amd64 and arm64 builds, and says macOS and Windows users need a Linux VM to build and run the agent. · github.com, 4 Oct 2026
- Architecture support
- The project supports ARM64 unwinders and says its provided build targets support amd64 and arm64. · github.com, 4 Oct 2026
- Backend integration
- The README names Pyroscope as an open-source database that natively supports ingesting OpenTelemetry profiling data. · github.com, 4 Oct 2026
- Backends
- The README names Pyroscope as an open-source database that natively supports ingesting OpenTelemetry profiling data, and says mature production-ready backends have yet to emerge. · github.com, 4 Oct 2026
- Collector integration
- The project says its profiler is integrated into the OpenTelemetry Collector as a receiver and identifies that configuration as the supported path going forward. · github.com, 4 Oct 2026
- Community and support
- The project invites bug reports, feature requests, documentation improvements, and code contributions, and directs discussion to the #otel-profiles channel on CNCF Slack. · github.com, 4 Oct 2026
- Development backend limitation
- The README says devfiler is for testing, experimentation and development, and should not be used as a production backend. · github.com, 4 Oct 2026
- Development binaries
- The standalone agent and local Collector receiver binaries are described as unsupported, subject to removal, and unsuitable for production deployment. · github.com, 4 Oct 2026
- Languages
- It supports native code including C/C++, Rust, Zig and Go, as well as Hotspot JVM, Python, Ruby, PHP, Node.js, V8, Perl, Erlang and .NET. · github.com, 4 Oct 2026
- License
- The project is licensed under Apache License 2.0, and its eBPF source code is licensed under GPL 2.0. · github.com, 4 Oct 2026
- Linux requirement
- The profiler is Linux-only; recent commits may require Linux kernel 5.10 or later, while earlier commits supported 5.4 or 4.19. · github.com, 4 Oct 2026
- Low overhead
- The project says its tested upper limits are 1% CPU and 250 MB of memory, and that the agent typically stays well below those limits. · github.com, 4 Oct 2026
- No in-process agent
- Profiling does not require loading agents or libraries into the processes being profiled. · github.com, 4 Oct 2026
- Non-intrusive profiling
- The profiler does not need to load agents or libraries into profiled processes or require interpreter and VM reconfiguration, instrumentation, or restarts. · github.com, 4 Oct 2026
- No runtime changes
- The agent supports unwinding supported languages in their default configuration without reconfiguration, instrumentation or interpreter or VM restarts. · github.com, 4 Oct 2026
- OpenTelemetry integration
- The profiler is integrated into the OpenTelemetry Collector as a receiver, which the project identifies as the supported configuration going forward. · github.com, 4 Oct 2026
- Profile format
- It implements the Alpha OpenTelemetry Profiles signal. · github.com, 4 Oct 2026
- Profiling signal status
- The agent has a functional but work-in-progress, evolving implementation of the recently released Alpha OpenTelemetry Profiles signal. · github.com, 4 Oct 2026
- Purpose
- It is a whole-system, cross-language profiler for Linux that uses eBPF. · github.com, 4 Oct 2026
- Security reporting
- The security policy asks reporters not to use public GitHub issues and recommends the repository’s private vulnerability reporting channel. · github.com, 4 Oct 2026
- Stack traces
- It supports mixed stack traces from kernel space through system libraries into high-level languages, and native inline frames. · github.com, 4 Oct 2026
- Standalone binary limitation
- The standalone profiling agent and local profiling-receiver binaries are described as unsupported, potentially removable, and unsuitable for production deployment. · github.com, 4 Oct 2026
- Support and community
- The project says it is developed by the OpenTelemetry Profiling SIG and directs questions and discussion to the #otel-profiles channel on CNCF Slack. · github.com, 4 Oct 2026
- System requirements
- The profiler is Linux-only; later commits may require Linux kernel 5.10 or newer, while earlier commits supported kernels down to 5.4 or 4.19. · github.com, 4 Oct 2026
Where OpenTelemetry eBPF Profiler stands on Freedom251
- Continuous Profiling Tools#15 of 30