跳转至

OBI eBPF 自动采集

Beacon OBI 通过独立的 Linux eBPF 进程采集选定应用,无需修改应用源码、接入 SDK 或改变应用启动命令。当前提供 Linux amd64 可执行文件。

前置条件与范围

主机需提供 /sys/kernel/btf/vmlinux,并具备 root 权限或探针需要的等效能力。已验收环境为 Ubuntu 24.04、内核 6.11、CPython 3.14.3、HTTP/1 服务端请求和本地 OTLP HTTP/protobuf 接收端。其他平台、运行时、协议、Kubernetes、Profile 和 Security 不在已验证范围内。

下载与校验

以下从 latest 发布页解析一次正式标签,再下载同一发布的归档与校验清单。在新目录操作,校验失败时停止。保留标签、归档与配置,升级前查看该发布的范围说明。

release_url=$(curl -fsSL -o /dev/null -w '%{url_effective}' \
  https://github.com/beacon-observability/beacon-obi/releases/latest)
release_tag=${release_url##*/}
release_version=${release_tag#v}
release_base="https://github.com/beacon-observability/beacon-obi/releases/download/$release_tag"
archive="beacon-obi-$release_version-linux-amd64.tar.gz"
curl -fLO "$release_base/$archive"
curl -fLO "$release_base/SHA256SUMS"
sha256sum --check --ignore-missing SHA256SUMS
mkdir "beacon-obi-$release_version"
tar -xzf "$archive" -C "beacon-obi-$release_version"
cd "beacon-obi-$release_version"
./obi --version

运行

先按公共配置开启 DataKit OpenTelemetry HTTP 接收端。下例将 8080 替换为目标应用的监听端口,并设置应用可访问的 DataKit 地址。DataKit 路径需要在实际环境单独验证,不能将本地接收端验收视为观测云入库证明。

sudo env \
  OTEL_EBPF_OPEN_PORT=8080 \
  OTEL_SERVICE_NAME=my-service \
  OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:9529/otel \
  OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \
  OTEL_EBPF_ENFORCE_SYS_CAPS=true \
  OTEL_EBPF_JAVAAGENT_ENABLED=false \
  ./obi

验证、排障与维护

向应用发送真实请求,核对服务名、非零 Trace/Span ID、HTTP 状态和 http.server.request.duration 指标。进入观测云「应用性能监测 > 链路」确认实际入库;启动成功或正常退出均不能证明全部数据送达。

无数据时检查端口、BTF、权限、探针挂载、网络及导出错误;临时增加 OTEL_EBPF_LOG_LEVEL=debug,排障后移除。不要让多个探针对同一目标重复采集。升级时以 SIGTERM 或 Ctrl+C 停止旧进程,再以相同配置启动已校验的新程序;回退时恢复旧程序和配置。停止 OBI 即可移除采集。

文档评价

文档内容是否对您有帮助?