
opentelemetry-ebpf-profiler
The production-scale datacenter profiler (C/C++, Go, Rust, Python, Java, NodeJS, .NET, PHP, Ruby, Perl, ...)
The Lens
This profiler attaches to your Linux system via eBPF and captures stack traces across every running process without touching your application code. No agents to install, no libraries to load, no recompilation. It supports C/C++, Go, Rust, Python, Java, Node.js, PHP, Ruby, Perl, and the dotnet runtime. All of it runs at roughly 1% CPU overhead.
The "no instrumentation" part is what matters. Traditional profilers (pprof, py-spy, async-profiler) require you to pick a language and instrument that specific runtime. This profiler sees everything: kernel space, system libraries, and application code in one unified stack trace. For debugging performance issues that cross language boundaries or involve system calls, nothing else gives you this view.
You need Linux kernel 5.4 or newer (4.19 with a specific patch), and it runs on amd64 and arm64. It feeds into the OpenTelemetry ecosystem, so your profiling data lands in whatever backend you already use for traces and metrics (Grafana, Jaeger, and the like). Solo developers probably do not need continuous profiling. Teams running multi-service production systems will find this indispensable.
The catch: Linux only. No macOS, no Windows. And eBPF profiling requires elevated permissions, which means your security team will have opinions about deploying it in production.
Similar Tools
License: Apache License 2.0
Use freely. Patent grant included.
Commercial use: ✓ Yes
About
- Owner
- OpenTelemetry - CNCF (Organization)
- Stars
- 3,079
- Forks
- 391
Explore Further
More tools in the directory
Get tools like this delivered weekly
The Open Source Drop — the best new open source tools, analyzed. Free.





