OpenTelemetry-Go
OpenTelemetry-Go 是 OpenTelemetry 的 Go 实现。它提供了一套 API,用于直接测量软件的性能和行为,并将这些数据发送到可观测性平台。
项目状态
信号 | 状态 |
---|---|
跟踪 | 稳定 |
指标 | 稳定 |
日志 | Beta1 |
项目版本信息和稳定性保证可以在版本文档中找到。
兼容性
OpenTelemetry-Go 确保与当前支持的 Go 语言版本兼容:
每个主要的 Go 版本都会得到支持,直到有两个更新的主要版本发布。例如,Go 1.5 的支持一直持续到 Go 1.7 发布,而 Go 1.6 的支持则持续到 Go 1.8 发布。
对于上游不再支持的 Go 版本,opentelemetry-go 将按以下方式停止确保与这些版本的兼容性:
- opentelemetry-go 将进行一次小版本发布,以添加对新支持的 Go 版本的支持。
- opentelemetry-go 的下一个小版本发布将移除对最老的(现在在上游已归档的)Go 版本的兼容性测试。这个版本以及未来的 opentelemetry-go 版本可能会包含仅由当前支持的 Go 版本支持的功能。
目前,该项目支持以下环境。
操作系统 | Go 版本 | 架构 |
---|---|---|
Ubuntu | 1.22 | amd64 |
Ubuntu | 1.21 | amd64 |
Ubuntu | 1.22 | 386 |
Ubuntu | 1.21 | 386 |
Linux | 1.22 | arm64 |
Linux | 1.21 | arm64 |
macOS 13 | 1.22 | amd64 |
macOS 13 | 1.21 | amd64 |
macOS | 1.22 | arm64 |
macOS | 1.21 | arm64 |
Windows | 1.22 | amd64 |
Windows | 1.21 | amd64 |
Windows | 1.22 | 386 |
Windows | 1.21 | 386 |
虽然本项目应该可以在其他系统上工作,但目前不对这些系统提供兼容性保证。
入门指南
你可以在 opentelemetry.io 上找到入门指南。
OpenTelemetry 的目标是提供一套单一的 API,用于从你的应用程序捕获分布式跟踪和指标,并将它们发送到可观测性平台。这个项目允许你为用 Go 编写的应用程序做到这一点。这个过程有两个步骤:对你的应用程序进行检测,并配置一个导出器。
检测
要开始从你的应用程序捕获分布式跟踪和指标事件,首先需要对其进行检测。最简单的方法是使用代码的检测库。请务必查看官方支持的检测库。
如果你需要扩展检测库提供的遥测功能,或者想直接为你的应用程序构建自己的检测,你需要使用 Go otel 包。包含的示例是查看这个过程的一些实际用途的好方法。
导出
现在你的应用程序已经被检测以收集遥测数据,它需要一个导出管道来将这些遥测数据发送到可观测性平台。
OpenTelemetry 项目的所有官方支持的导出器都包含在 exporters 目录中。
导出器 | 日志 | 指标 | 跟踪 |
---|---|---|---|
OTLP | ✓ | ✓ | ✓ |
Prometheus | ✓ | ||
stdout | ✓ | ✓ | ✓ |
Zipkin | ✓ |
贡献
请查看贡献文档。