Configure Grafana Agentintegrations_configebpf_config

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;
    }