该项目为希望利用 OpenTelemetry 的 Golang 应用程序提供了一个自动解决方案。
利用 OpenTelemetry 实现有效可观察性的 Golang 应用程序提供自动解决方案。目标应用程序无需更改代码
在编译时完成。只需在 go build
中添加 otel
前缀即可开始 🚀
对于 Linux 和 MacOS 用户,运行以下命令即可安装该工具
$ sudo curl -fsSL https://cdn.jsdelivr.net/gh/alibaba/opentelemetry-go-auto-instrumentation@main/install.sh | sudo bash
默认情况下,它将安装在 /usr/local/bin/otel
中。
请从 Release 页面下载最新的预编译版本。
通过运行以下命令查看源代码并构建工具:
$ make # 只构建
$ make install # 构建并安装
通过运行以下命令检查版本:
$ otel version
通过以下命令配置工具参数:
$ otel set -verbose # 打印详细日志
$ otel set -log=/path/to/file.log # 设置日志文件路径
$ otel set -debug # 启用调试模式
$ otel set -debug -verbose -rule=custom.json # 组合配置参数
$ otel set -disabledefault -rule=custom.json # 禁用默认规则,仅使用自定义规则
$ otel set -rule=custom.json # 同时使用默认和自定义规则
$ otel set -rule=a.json,b.json # 使用默认规则及 a 和 b 自定义规则
在 go build
中添加 otel
前缀,以构建项目:
$ otel go build
$ otel go build -o app cmd/app
$ otel go build -gcflags="-m" cmd/app
工具本身的参数应放在 go build
之前:
$ otel -help # 打印帮助文档
$ otel -debug go build # 启用调试模式
$ otel -verbose go build # 打印详细日志
$ otel -rule=custom.json go build # 使用自定义规则
您可以在 使用指南中找到 otel
工具的详细用法。
Note
如果您发现任何编译失败,而 go build
却能正常工作,这很可能是一个 bug。
请随时在
GitHub Issues
提交问题报告以帮助我们改进本项目。
您还可以探索 这些示例 以获得实践经验。
此外,还有一些 文档,您可能会发现它们对了解项目或为项目做出贡献非常有用。
我们正在逐步开源我们支持的库,非常欢迎您的贡献💖!
- 如何添加新规则
- 如何编写插件测试
- 兼容性说明
- 实现原理
- 如何调试
- 上下文传播机制
- 支持的库
- 基准测试
- OpenTelemetry社区讨论主题
- 面向OpenTelemetry的Golang应用无侵入插桩技术
我们期待您的反馈和建议。您可以加入我们的 DingTalk 群组 与我们交流。
以下为部分采用本项目的企业列表,仅供参考。如果您正在使用此项目,请在此处添加您的公司告诉我们您的使用场景,让这个项目变得更好。