OpenTelemetry Profiles Enters Public Alpha with eBPF Agent

OpenTelemetry Profiles has officially entered public Alpha, marking a significant milestone for continuous production profiling. With a unified data format, eBPF-based profiler, and Collector integration, the project is building an industry-wide standard alongside traces, metrics, and logs. This release represents years of collaboration between profiling experts across the industry and signals production readiness for teams wanting to add profiling to their observability stacks.

The Case for Continuous Profiling

Production profiling helps teams troubleshoot incidents, improve user experience through performance optimization, and reduce compute costs by making the same work consume fewer resources. Unlike traditional benchmarking or load testing, continuous profiling captures real-world behavior under actual production traffic patterns. Historically, the industry lacked a common framework despite popular formats like JFR and pprof being widely used.

OpenTelemetry Profiles addresses this gap with true vendor neutrality and community-driven ecosystem support. The unified format means profiles from any source can be exported to any backend, eliminating lock-in and enabling hybrid observability architectures.

The OTLP Profiles Format

The Alpha release introduces a unified profiling data representation with several key design decisions that balance efficiency and expressiveness:

  • Deduplicated stack representation: Each unique callstack stored once for efficient encoding, dramatically reducing data volume for common code paths
  • Dictionary tables: Efficient normalization of common entities like function names and file paths
  • Timestamped event support: Captures individual off-CPU events even when sampled, enabling precise latency analysis
  • Resource attributes: Links profiling data to the same resources emitting logs, metrics, and traces using the standard OTel resource model
  • Trace correlation: Profile samples can reference trace_id and span_id for cross-signal analysis

The format is pprof-compatible—data can round-trip between OTLP and pprof without loss. A native pprof translator is included in the Collector contrib, enabling migration from existing profiling pipelines.

eBPF Profiling Agent

Following Elastic’s donation of its continuous profiling agent, the OpenTelemetry eBPF profiler is now available as an official Collector distribution. This agent requires no application instrumentation and works across most common language runtimes. Alpha improvements include:

  • Collector receiver mode with full OTel pipeline integration
  • Automatic on-target symbolization for Go executables without debug symbols
  • ARM64 support for Node.js V8 runtime profiling
  • Initial BEAM (Erlang/Elixir) support
  • .NET 9 and 10 compatibility for modern Windows services

Collector Integration

The Profiles signal integrates across the OTel ecosystem: a pprof receiver imports existing profiles, the k8sattributesprocessor adds Kubernetes metadata for cluster-wide analysis, and OTTL transforms enable custom filtering and routing rules. This enables sophisticated pipelines like filtering out short-lived samples or routing specific service profiles to dedicated backends.

The semantic conventions provide standardized attribute names for common profiling concepts, making cross-backend queries possible without translation layers.

Getting Started

The conformance checker tool validates that exported profiles adhere to semantic conventions and technical specifications. The eBPF profiler distribution is available now for teams wanting to add continuous profiling to their observability stack without modifying application code.

For teams already using pprof-compatible tools, migration is straightforward—existing profiles can be ingested through the Collector, and gradual adoption of OTLP native export provides access to the full feature set.


Sources