Loading

Configure profiles collection

Stack Planned 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.

Important

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.

  1. 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.