Run OBI as a standalone process

Learn how to setup and run OBI as a standalone Linux process.

You are viewing the English version of this page because it has not yet been fully translated. Interested in helping out? See Contributing.

OpenTelemetry eBPF Instrumentation Logo

Run OBI as a standalone process

OBI can run as a standalone Linux OS process with elevated privileges that can inspect other running processes.

Download and install

You can download the OBI executable from the OBI releases page.

Alternatively, download the OBI executable with the go install command:

go install github.com/grafana/beyla/cmd/beyla@latest

Set up OBI

  1. Create a configuration file following the configuration options documentation.

  2. Run OBI as a privileged process:

sudo ./obi --config=<path to config file>

Example configuration

Here’s an example configuration file (obi-config.yml):

# Basic configuration
discovery:
  services:
    - name: my-service
      open_ports: [8080, 8090]
      exe_path: /usr/local/bin/my-service

# Traces configuration
traces:
  # Enable tracing
  enabled: true

  # OpenTelemetry endpoint
  otlp_endpoint: http://localhost:4318

  # Trace format
  format: otlp

# Metrics configuration
metrics:
  # Enable metrics
  enabled: true

  # OpenTelemetry endpoint
  otlp_endpoint: http://localhost:4318

  # Metrics format
  format: otlp

# Logging configuration
log_level: info

Run OBI

Run OBI with the configuration file:

sudo ./obi --config=obi-config.yml

Configuration options

For a complete list of configuration options, see the configuration documentation.

Permissions

OBI requires elevated privileges to function properly. For more information about the specific capabilities required, see the security documentation.

Example: Docker instrumentation

To instrument a Docker container, you can run OBI on the host:

sudo ./obi --config=obi-config.yml

With a configuration that targets the container:

discovery:
  services:
    - name: my-container-service
      open_ports: [8080]
      exe_path: /proc/*/root/app/my-app

Example: System-wide instrumentation

To instrument all services on a system:

discovery:
  services:
    - name: all-services
      open_ports: [80, 443, 8080, 8443]

log_level: info

This configuration will instrument all processes listening on the specified ports.


সর্বশেষ পরিবর্তিত July 10, 2025: Migrate beyla documentation for OBI (4e2cb561)