---
title: "Use OpenTelemetry eBPF Instrumentation with Grafana | Grafana Beyla documentation"
description: "Configure OpenTelemetry eBPF Instrumentation (OBI) for Grafana Cloud Application Observability and Knowledge Graph, and use OpenTelemetry projects for capabilities that Grafana Beyla includes."
---

> For a curated documentation index, see [llms.txt](/llms.txt). For the complete documentation index, see [llms-full.txt](/llms-full.txt).

# Use OpenTelemetry eBPF Instrumentation with Grafana

OpenTelemetry eBPF Instrumentation (OBI) works with the Grafana Cloud OTLP endpoint, and with any OpenTelemetry Collector or Prometheus-compatible backend. This page shows how to configure OBI for Grafana Cloud, and how to use other OpenTelemetry projects for capabilities that Grafana Beyla includes. To compare Beyla and OBI, refer to [Compare Beyla and OpenTelemetry eBPF Instrumentation](https://grafana.com/docs/beyla/latest/beyla-and-obi/compare/).

## Configure OBI for Application Observability and Knowledge Graph

A base OBI installation provides basic functionality in Grafana Cloud [Application Observability](https://grafana.com/products/cloud/application-observability/) and [Knowledge Graph](https://grafana.com/docs/grafana-cloud/knowledge-graph/). To get the most out of Application Observability, configure OBI to export the following metric families in the [features](https://opentelemetry.io/docs/zero-code/obi/configure/export-data/#metrics-export-features) section:

- `application`
- `application_span_otel`
- `application_service_graph`
- `network_flow_packets`
- `application_runtime`

Set the list in the `metrics.features` section of the OBI configuration file, or with the `OTEL_EBPF_METRICS_FEATURES` environment variable. For example, `OTEL_EBPF_METRICS_FEATURES=application,application_span_otel,application_service_graph,network_flow_packets,application_runtime`.

Application Observability also uses traces and process metrics. To get them with OBI, enable traces with [full context propagation](https://opentelemetry.io/docs/zero-code/obi/distributed-traces/), and provide a source for [process metrics](https://grafana.com/docs/beyla/latest/beyla-and-obi/use-obi/#process-metrics).

For [host-hours pricing](https://grafana.com/docs/grafana-cloud/observe-and-act/monitor-applications/application-observability-kg/pricing/), Application Observability identifies hosts from the `k8s.node.name` or `host.id` resource attribute. OBI sets these attributes for most deployment models, so you don’t need the Beyla `application_host` metric family, which exports the `traces_host_info` metric.

## Add capabilities that Beyla includes

Beyla includes some capabilities for the Grafana ecosystem that aren’t part of OBI. The following sections describe how to get these capabilities with OBI and other OpenTelemetry projects.

### Process metrics

Beyla provides the following metrics, which follow the [OpenTelemetry semantic conventions for OS process metrics](https://opentelemetry.io/docs/specs/semconv/system/process-metrics/):

text ![Copy code to clipboard](https://grafana.com/media/images/icons/icon-copy-small-2.svg) Copy

```text
process.cpu.time
process.cpu.utilization
process.memory.usage
process.memory.virtual
process.disk.io
process.network.io
```

If you use OBI and need these metrics, run an OpenTelemetry Collector on each node, and configure the [Host Metrics Receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/hostmetricsreceiver/README.md) to report process metrics.

The [process scraper](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/hostmetricsreceiver/internal/scraper/processscraper/documentation.md) of the Host Metrics Receiver doesn’t report `process.network.io`, so this setup doesn’t provide that metric. The scraper reports `process.cpu.utilization` only when you enable it.

The Host Metrics Receiver sends metrics for all the processes in the system by default. Beyla sends process metrics only for the services and applications that it instruments. To report metrics only for the processes that OBI instruments, [configure the Collector to filter out processes](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/filterprocessor) that don’t match your [OBI service discovery configuration](https://opentelemetry.io/docs/zero-code/obi/configure/service-discovery/).

### Survey mode

Beyla has a [survey mode](https://grafana.com/docs/beyla/latest/configure/service-discovery/#survey-mode) that discovers your services and detects their programming languages, without instrumenting them. Grafana Cloud [Instrumentation Hub](https://grafana.com/docs/grafana-cloud/send-data/inst-hub-setup/) uses survey mode to help you configure instrumentation for your services.

OBI doesn’t include survey mode. To follow the work to add survey mode to OBI, refer to the [OBI survey mode issue](https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation/issues/2285).

### Integration with Alloy or Collector

Beyla can run as a standalone process, or as a component inside [Grafana Alloy](https://grafana.com/docs/alloy/latest/reference/components/beyla/), the Grafana Labs distribution of the OpenTelemetry Collector. When Beyla runs inside Alloy, you can manage it with [Fleet Management](https://grafana.com/docs/grafana-cloud/send-data/fleet-management/), which lets you manage many collector deployments remotely.

To get similar functionality with OBI, follow these steps:

1. [Build a custom Collector with OBI as a receiver](https://opentelemetry.io/docs/zero-code/obi/configure/collector-receiver/).
2. Make sure the Collector integrates [OpAMP](https://opentelemetry.io/docs/collector/management/). For integration instructions, refer to [Get started with Fleet Management and OpenTelemetry Collector](https://grafana.com/docs/grafana-cloud/send-data/fleet-management/get-started/opentelemetry-collector/).

## Next steps

- [Compare Beyla and OpenTelemetry eBPF Instrumentation](https://grafana.com/docs/beyla/latest/beyla-and-obi/compare/)
- [OpenTelemetry eBPF Instrumentation documentation](https://opentelemetry.io/docs/zero-code/obi/)
- [Set up Beyla](https://grafana.com/docs/beyla/latest/setup/) to use these capabilities without extra OpenTelemetry components
