菜单
开源

在 Docker 上设置 eBPF 性能分析

要在 Linux 上使用 Grafana Agent 设置 eBPF 性能分析,您需要

  • 验证您的系统是否满足要求。
  • 创建 Grafana Agent 配置文件。有关更多信息,请参阅配置参考
  • 运行 Grafana Agent 或 Grafana Alloy。
  • 验证是否已收到配置文件。

注意

Grafana Alloy 是我们分发的 OTel 收集器的新的名称。Grafana Agent 已弃用,并且在 2025 年 10 月 31 日之前处于长期支持 (LTS) 状态。Grafana Agent 将于 2025 年 11 月 1 日达到使用寿命终止 (EOL)。阅读更多关于我们建议迁移到Grafana Alloy的原因。

先决条件

在开始之前,您需要

注意

如果您没有 Grafana 和/或 Pyroscope 服务器,您可以使用 [Grafana Cloud][gcloud] 免费计划开始。

验证系统是否满足要求

eBPF 性能分析器需要 Linux 内核版本 >= 4.9(由于BPF_PROG_TYPE_PERF_EVENT)。

BPF_PROG_TYPE_PERF_EVENT 是一种 eBPF 程序类型,可以附加到 Linux 内核中的硬件或软件事件,例如性能监控计数器或跟踪点。

要打印 Docker 主机的内核版本,请运行以下命令:

shell
docker info | grep Kernel

确保您的内核版本 >= 4.9。

配置 Grafana Agent

您可以配置 Grafana Agent eBPF 分析器来分析本地容器。为此,请使用 discovery.docker 组件发现本地容器,并使用 pyroscope.ebpf 组件对其进行分析。

创建一个名为 agent.river 的文件,内容如下:

river
discovery.docker "local_containers" {
 host = "unix:///var/run/docker.sock"
}

pyroscope.ebpf "instance" {
 forward_to     = [pyroscope.write.endpoint.receiver]
 targets = discovery.docker.local_containers.targets
}


pyroscope.write "endpoint" {
 endpoint {
  basic_auth {
   password = "<PASSWORD>"
   username = "<USERNAME>"
  }
  url = "<URL>"
 }
 external_labels = {
  "env"      = "testing",
  "instance" = env("HOSTNAME"),
 }
}

<URL> 占位符替换为相应的服务器 URL。这可能是 Grafana Cloud URL 或您自己的自定义 Pyroscope 服务器 URL。

如果您需要将数据发送到 Grafana Cloud,则必须配置 HTTP 基本身份验证。将 <User> 替换为您的 Grafana Cloud 堆栈用户,并将 <Password> 替换为您的 Grafana Cloud API 密钥。

注意

如果您使用的是自己的 Pyroscope 服务器,则可以完全删除 basic_auth 部分。

有关更多信息,请参阅 配置 Grafana Pyroscope 数据源文档

启动 Grafana Agent

要使用 Docker 启动 Grafana Agent,请运行以下命令:

shell
docker run \
  -e AGENT_MODE=flow \
  -v $PWD/agent.river:/etc/agent/config.river \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --pid=host \
  --privileged \
  -p 12345:12345 \
  grafana/agent:latest \
    run --server.http.listen-addr=0.0.0.0:12345 /etc/agent/config.river

注意:--pid=host--privileged 标志是使用 ebpf 分析本地容器所必需的。

验证是否接收到了配置文件

要验证 Pyroscope 服务器是否接收到了配置文件,请转到 Pyroscope UI 或 Grafana Pyroscope 数据源。然后从下拉菜单中选择配置文件类型和服务。