菜单
文档breadcrumb arrow Beyla
Grafana Cloud

Grafana Beyla

Grafana Beyla Logo

eBPF应用程序自动打标

要对应用程序进行仪表化以获取指标和跟踪,通常需要在应用程序部署/包中添加语言代理。在某些编译型语言,如Go或Rust中,您必须手动将跟踪点添加到代码中。

Grafana Beyla是一个基于eBPF的应用程序自动仪表化工具,可轻松入门应用程序可观察性。Beyla使用eBPF自动检查应用程序可执行文件和OS网络层,并捕获与Web事务和相关指标(如Linux HTTP/S和gRPC服务的Retail Errors Duration(RED))相关的跟踪跨度。所有数据捕获均不修改应用程序代码或配置。

Beyla提供以下功能

  • 自动为各种编程语言编写的应用程序进行仪表化,例如:Go、C/C++、Rust、Python、Ruby、Java(包括GraalVM Native)、NodeJS、.NET等
  • 高效仪表化和低开销的数据捕获,即使是编译型代码也有效
  • 以OpenTelemetry格式和原生Prometheus指标进行供应商无关的数据导出
  • 为Go服务提供分布式跟踪
  • 在任意Linux环境中运行
  • 监听Kubernetes API,以装饰Pod和服务元数据
  • 为已使用Grafana Alloy的客户提供简单的设置

要求

  • 具有BPF类型格式(BTF)启用,版本5.8或更高版本的Linux内核。大多数Linux发行版从内核5.14开始,BTF默认启用了。您可以通过检查系统上是否存在 /sys/kernel/btf/vmlinux 来验证您的内核是否启用了BTF。如果您需要重新编译内核以启用BTF,则必须设置配置选项 CONFIG_DEBUG_INFO_BTF=y
  • 在主机上启用eBPF。
  • 对于Go程序的仪表化,它们必须使用至少Go 1.17编译。我们目前支持使用主要版本构建的Go应用程序,该版本不早于当前稳定的主要版本低于3个版本。
  • 对执行Beyla具有管理访问权限。

入门

  • 遵循特定语言的快速入门指南,了解如何设置Beyla以仪表化特定语言编写的应用程序。

  • 遵循设置文档,以独立服务、使用Docker或Kubernetes的方式开始使用Beyla。

  • 遵循教程,了解如何使用Beyla对应用程序进行仪表化并将数据发送到Grafana云。

了解更多关于Grafana Beyla的信息