Grafana Beyla 概览
Grafana Beyla 是一个开源项目,它为使用 Go、C/C++、Rust、Python、Ruby、Java(包括 GraalVM Native)、NodeJS、.NET 等语言编写的 HTTP/gRPC 应用程序实现自动工具化。它基于 eBPF 技术,允许您将在不同位置附加到 Linux 内核上的自己的程序。
通常,为了对应用程序进行可观测性跟踪,需要在部署或包装中添加语言代理,手动添加跟踪点,然后重新部署。使用 Beyla,您只需一个命令即可对所有服务进行工具化,无需修改源代码。
Beyla 由 Grafana Labs 开始并于 2023 年宣布。该项目的使命是利用 eBPF 帮助用户快速入门应用程序可观测性。收集的遥测数据可以与 Grafana Labs LGTM 堆栈(Loki 用于日志、Grafana 用于可视化、Tempo 用于跟踪和 Mimir 用于指标)中的后端和基础设施数据进行关联,以实现无缝、全面的开源可观测性解决方案。
Grafana Labs 感到自豪地领导 Grafana Beyla 项目的开发,将 Beyla 的顶级支持构建到 Grafana 中,并确保 Grafana Labs 用户在需要时获得 Beyla 支持和应用可观测性功能。
为什么使用 Grafana Beyla?
Grafana Beyla 如何在 eBPF 自动工具化方面工作?
什么是 eBPF?
eBPF 技术允许将程序附加到 Linux 内核的不同点。eBPF 程序在特权模式下运行,允许从内核的不同部分获取运行时信息:系统调用、网络栈以及甚至可以在您的用户空间程序中插入探针。
eBPF 程序是安全的,因为它们是为自己的虚拟机指令集编译的,然后可以在预验证每个加载的程序以安全内存访问和有限执行时间的安全沙盒环境中运行。
经过验证后,eBPF 二进制文件会即时编译到宿主原生架构(x86-64、ARM64 等)以实现高效快速执行。
eBPF 代码从用户空间运行的普通程序中加载,内核和用户空间程序可以通过 eBPF 规范提供的一套通信机制共享信息:环形缓冲区、数组、哈希表等。
基于开源,由社区推动
我们很激动能与开源社区分享我们的学习成果,并共同开发这款易于使用的自动化应用程序可观察性工具。