宣布 OpenTelemetry Go 自动仪表化 eBPF Beta 版本
OpenTelemetry 社区很高兴地宣布 OpenTelemetry Go 自动检测项目 Beta 版本发布!这一里程碑让我们离“让可观测性变得简单、易于访问且有效”的 Go 应用程序的使命又近了一步。
什么是 Go 自动检测?
OpenTelemetry Go 自动检测允许开发人员在不进行手动代码修改或重新构建二进制文件的情况下,从其 Go 应用程序收集跟踪。通过使用 eBPF 在运行时动态检测应用程序,该项目降低了采用可观测性最佳实践的门槛,并提供了对应用程序行为的深入洞察。
Beta 版本的主要功能
Beta 版本提供了对自动检测的基础支持,其主要功能包括:
- HTTP 服务器检测:使用
net/http包时,自动跟踪传入和传出的 HTTP 请求,并进行跟踪上下文传播。 - 数据库检测:检测使用
database/sql包的数据库查询和连接。 - gRPC 检测:轻松从 gRPC 客户端和服务器收集遥测数据。
- Kafka-go 检测:使用
kafka-go包监控和跟踪 Kafka 消息。 - 可通过 OpenTelemetry 的 Trace API 扩展:使用 OpenTelemetry Go Trace API 无缝扩展自动检测,添加自定义 Span。
- 通过环境变量配置:通过基于环境的设置简化配置,减少代码更改的需求。
- 符合语义约定:生成的遥测数据符合最新的 OpenTelemetry 语义约定,确保与 OTel 生态系统的兼容性。
入门
开始使用 OpenTelemetry Go 自动检测非常简单!有关安装、配置和运行应用程序进行自动检测的详细说明,请查阅 入门指南。
要查看完整示例,请查看 rolldice 应用程序。
稳定化的道路
随着 Beta 版本的发布,项目团队正专注于为稳定发布做准备。在接下来的几年里,我们将重点实现以下目标:
使用 eBPF 优化运行时检测
我们将继续利用和改进 eBPF 进行动态运行时检测,确保 Go 应用程序具有可靠、低开销的可观测性。这包括及时了解 Go 和 eBPF 生态系统的最新发展。
扩展生态系统支持
虽然 Beta 版本支持有限数量的 Go 包,并且只有一个遥测处理管道,但我们计划扩展此支持。我们将为其他 Go 包引入检测,并允许用户创建自定义遥测处理管道。这种扩展将使其更容易与流行的 Go 包集成,并为自定义检测提供灵活性。
整合 Beyla 对 OpenTelemetry 的捐赠
提议的 将 Beyla 捐赠给 OpenTelemetry,为增强 OpenTelemetry 的基于 eBPF 的自动检测能力提供了机会。如果被接受,这次捐赠将有助于扩展对其他信号、协议和语言的支持,创建一个更全面的基于 eBPF 的可观测性解决方案。OpenTelemetry Go 自动检测将与这些发展同步演进,确保无缝协作,同时继续为 Go 应用程序提供强大的跟踪功能。
请在 2025 年目标跟踪问题中关注我们的进展。
加入我们的旅程
与所有 OpenTelemetry 项目一样,Go 自动检测的成功取决于社区。无论您是热衷于贡献的开发人员,还是希望采用该项目的公司,亦或是对可观测性感到好奇的人,我们都欢迎您的加入。
以下是您可以参与的方式:
致谢
此 Beta 版本的发布归功于来自世界各地贡献者无数小时的辛勤工作。感谢所有为实现这一里程碑做出代码、文档、反馈和热情贡献的人。