OpenTelemetry eBPF profiler support in Instana

Instana now supports the OpenTelemetry eBPF profiler, (up to commit 2698137). You can use this profiler to analyze Java, Python, Ruby, PHP, and NodeJS applications.

Supported operating systems

To make sure that the OpenTelemetry eBPF profiler is compatible with your current setup, check the following system requirements:

  • Operating system: Linux x86_64 or ARM64
  • Minimum Kernel version: 5.10.0
  • C Runtime: GNU
  • Minimum C Runtime version: 2.26.0

Configuration

To enable the OpenTelemetry eBPF profiler, add the following configuration to the agent configuration file located at <agent_install_dir>/etc/instana/configuration.yaml:

com.instana.plugin.ebpf:
  opentelemetry-ebpf-profiling:
    enabled: true

Profiling native language processes

You can enable profiling for native language processes, such as C++ or Rust, in the following ways:

  • At process initialization
  • At runtime

Profiling at process initialization

To enable profiling when you start a native process, set the INSTANA_PROFILING process environment variable to 1. For example:

INSTANA_PROFILING=1 ./factorials

Profiling at runtime

To enable profiling for an already running native process, complete the following steps:

Prerequisites

Steps

  1. Enable the process selection in the agent configuration.yaml file as follows:

    com.instana.plugin.ebpf:
      enabled: true
      opentelemetry-ebpf-profiling:
        enabled: true
        processSelectionEnabled: true
    
  2. Enable the profiling on the process or binary by running the following command:

    > cd <agent_dir>/bin
    > ./instana_ebpf_profiling factorials ON
    

    where factorials is the running process that you want to profile.