It suprises me that anything designed by the OTel community could ever meet 'low-overhead' expectations.
Like… has anyone done a Jepsen-like stress test on rsyslogd and shared the results? I’ve half-assedly looked before and not been able to find anything.
Since OpenTelemetry first introduced Profiles, momentum has only grown towards building a unified industry standard for continuous production profiling, standing alongside traces, metrics, and logs. Today, the Profiling SIG is proud to announce that the Profiles signal has officially entered public Alpha, and we are ready for broader community use and feedback.
Continuously capturing low-overhead performance profiles in production is a technique that has been used for decades. It helps troubleshoot production incidents, improves user experience by making software faster and reduces computation costs by making the same work take less resources. Historically, the industry lacked a common framework and protocol for continuous profiling, even with formats like JFR and pprof being popular.
With OpenTelemetry Profiles, we’re introducing an industry-wide standard for production profiling, with true vendor neutrality and powered by community and ecosystem support. There are a few components to making this a reality:
All of the above have been substantially improved in the Alpha release, so let’s dive into what we’ve been working on!
Creating a unified profiling format is a significant challenge, as it must serve as the industry standard across diverse environments. The working group had to reconcile numerous requirements: sampling vs. tracing, native vs. interpreted runtimes, the tension between wire/memory-size efficiency and data readability, and other similar aspects.
The resulting Profiles Alpha format offers a balanced feature set that can efficiently capture profiling data:
trace_id / span_id attributes, enabling cross-signal correlation of the data.Originally inspired by the pprof format and developed in collaboration with pprof maintainers, OTLP Profiles has evolved into an independent standard that addresses the broad requirements of the OpenTelemetry ecosystem. Data in the original pprof format can be round-trip converted to/from OTLP Profiles with no loss of information. For that purpose a new native translator is now included to ensure seamless interoperability.
To ensure data quality and ease of adoption, we are also releasing a conformance checker tool. This allows validating that the exported profiles adhere to the technical specifications and semantic conventions of OpenTelemetry Profiles.
With the Elastic donation of its eBPF profiling agent to OpenTelemetry and its integration with the OTel Collector, low-overhead whole-system continuous profiling on Linux with support of the most widely-used language runtimes without any additional instrumentation is available to every OpenTelemetry user.
A number of significant improvements are available with the Alpha release:
OpenTelemetry is a holistic ecosystem with many orchestrated parts. It’s critical that a new signal like Profiles integrates ubiquitously, so that all signals can benefit from each other. The Alpha release brings multiple improvements in this area across many dimensions of the OTel universe.
Some notable examples of the horizontal integration of Profiles include:
To learn more about OpenTelemetry profiles, you can visit the profiles concepts page that is part of the OpenTelemetry documentation.
The easiest way to get started with an actual deployment is to use the OpenTelemetry eBPF profiler in combination with a backend that supports OTLP Profiles. As the signal is still under development, production-ready backends have not yet emerged but multiple vendors are working on supporting OpenTelemetry Profiles.
To speed up development and experimentation, Elastic has open-sourced a desktop application named devfiler that reimplements the backend (collection, data storage, symbolization and UI) portion of the eBPF profiler. Note that devfiler is not a real production backend and should not be used as such. For further instructions, please refer to the eBPF profiler repository.

Projects like this involve many people. Thanks to everyone who made this possible, including:
We encourage teams building profiling tools and products to start using the OpenTelemetry Profiles. Here is how you can participate:
Note that with the Alpha status of the release, the signal should not be used for critical production workloads. See the definition of the Alpha maturity level in OpenTelemetry for details.
In the meantime and towards the next milestone, there is a lot of exciting work planned and in the works:
And for all of this, we need your feedback! To reach us, file a GitHub issue in the OTLP or Profiling SIG repository. It will help make the signal fit the industry needs and steadily evolve it towards its next heights: Beta and GA releases!