帮助手册

Go 应用程序的 eBPF 插桩

Site24x7 APM Insight Go 代理使用扩展伯克利数据包过滤器(eBPF)技术,为运行在 Linux 上的 Go 应用程序提供实时零代码追踪。借助这种方式,您只需极少的运维工作且无需修改应用程序代码,即可深入了解 Go 应用程序的性能。

为什么将 eBPF 用于 Go 应用程序插桩?

Go 是编译型语言

与 Java 或 Python 等解释型语言不同,Go 直接编译为原生机器码。这使得在运行时添加或注入额外的插桩代码变得困难,传统的运行时插桩方法无法有效应用。

Linux 内核提供 eBPF

Linux 内核内置 eBPF,这是一项强大功能,允许用户定义的程序安全地附加到内核及用户进程执行的各个节点。这使得无需修改应用程序代码即可实现监控和追踪功能。

eBPF 如何解决这一挑战?

借助 eBPF,Go 应用程序监控通过以下关键能力实现:

  • 沙箱执行:eBPF 程序在内核中的沙箱虚拟机内运行,确保对系统和用户空间事件的安全受控访问。
  • 动态追踪:通过附加到系统调用、网络活动以及函数入口或出口来采集正在运行的 Go 进程的遥测数据,无需修改或重启应用程序。
  • 非侵入式监控:无需修改任何代码,即可持续监控 Go 应用程序。
  • 数据流:eBPF 程序收集运行时遥测数据(如事务追踪、方法计时和资源使用情况),由 Site24x7 APM Insight 代理采集后安全发送至 Site24x7 后端进行可视化和分析。

eBPF 在云原生可观测性和安全项目中被广泛采用,例如 Cilium(网络)和 Falco(运行时安全)。

使用 eBPF 的优势

  • 高性能:程序在内核内高效执行,开销极小。
  • 安全性:严格的验证机制确保程序在执行前安全稳定。
  • 灵活性:支持动态监控各类系统和应用程序行为。
  • 零代码变更:无需开发者进行插桩即可实现追踪。

借助 eBPF,Site24x7 APM Insight Go 代理可在 Linux 上对 Go 应用程序提供深度、实时的可见性,实现零代码变更和极低的运维负担。这使团队能够在生产环境中有效地监控、排查和优化 Go 应用程序。

相关文章

本文档对您有帮助吗?

您愿意帮助我们改进文档吗?请告诉我们哪些方面可以做得更好。


很抱歉本文档未能让您满意。我们希望了解可以从哪些方面改进您的体验。


感谢您抽出时间分享反馈。我们将利用您的反馈来改进在线帮助资源。

短链接已复制!