Caution
Grafana Alloy is the new name for our distribution of the OTel collector. Grafana Agent has been deprecated and is in Long-Term Support (LTS) through October 31, 2025. Grafana Agent will reach an End-of-Life (EOL) on November 1, 2025. Read more about why we recommend migrating to Grafana Alloy.
Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.
ebpf_config
The ebpf_config
block configures the Agent’s eBPF integration.
It is an embedded version of
ebpf_exporter
that allows the Agent to attach eBPF programs to the host kernel
and export defined metrics in a Prometheus-compatible format.
As such, this integration is only supported on Linux/AMD64, and it comes with the relevant caveats of running eBPF programs on your host, like being on a kernel version >4.1, specific kernel flags being enabled, plus having superuser access.
Currently, the exporter only supports kprobes
, that is
kernel-space probes.
Configuration reference:
## ebpf runs the provided 'programs' on the host's kernel
## and reports back on the metrics attached to them.
programs:
[- <program_config> ... ]
Each provided <program_config>
block defines a single eBPF program that the integration should run, along with what metrics should be attached to it.
Here’s an example of a valid configuration that includes a program to measure hits and misses to the file system page cache.
programs:
- name: cachestat
metrics:
counters:
- name: page_cache_ops_total
help: Page cache operation counters by type
table: counts
labels:
- name: op
size: 8
decoders:
- name: ksym
kprobes:
add_to_page_cache_lru: do_count
mark_page_accessed: do_count
account_page_dirtied: do_count
mark_buffer_dirty: do_count
code: |
#include <uapi/linux/ptrace.h>
BPF_HASH(counts, u64);
int do_count(struct pt_regs *ctx) {
counts.increment(PT_REGS_IP(ctx) - 1);
return 0;
}