Configure profiles collection
Stack Serverless Observability
The Elastic Distribution of OpenTelemetry (EDOT) Collector includes a profiling receiver, which offers an eBPF-based, system-wide profiler.
To activate and configure profiling and send profiles to Elastic Cloud or Elasticsearch, follow these instructions.
OpenTelemetry profiling is still under active development. Refer to The State of Profiling blog post for more information.
Follow these steps to turn on profiles collection through the EDOT Collector.
-
Activate profiling in the Collector
To activate profiling in the EDOT Collector, start it using the additional argument
--feature-gates=service.profilesSupport
.For example:
sudo ./otelcol --config otel.yml --feature-gates=service.profilesSupport
You can configure the components to generate and report metrics exclusively from profile information. This method contributes to a reduction in ingest traffic and storage costs.
The following example generates profiling metrics by frame, frame type, and classification:
connectors:
profilingmetrics:
by_frame: true
by_frametype: true
by_classification: true
receivers:
profiling:
SamplesPerSecond: 19
service:
pipelines:
profiles:
receivers: [ profiling ]
exporters: [ profilingmetrics ]
metrics:
receivers: [ profilingmetrics ]
exporters: [ elasticsearch ]
In Kubernetes, we suggest deploying the EDOT Collector with a profiling receiver as a DaemonSet. This ensures comprehensive, node-level profiling across the entire cluster, providing consistent data collection, resilience, scalability, and simplified management. This approach is recommended for optimal performance and full observability.