该项目为希望利用 OpenTelemetry 的 Golang 应用程序提供了一个自动解决方案。
利用 OpenTelemetry 实现有效可观察性的 Golang 应用程序提供自动解决方案。目标应用程序无需更改代码
在编译时完成。
时完成。只需在 go build
中添加 otel
前缀即可开始 :rocket:
对于 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](https://github.com/alibaba/opentelemetry-go-auto-instrumentation/releases) 页面下载最新的预编译版本。
通过运行以下命令查看源代码并构建工具:
$ make build
在 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 # 使用自定义规则
您还可以探索 这些示例 以获得实践经验。
此外,还有一些 文档,您可能会发现它们对了解项目或为项目做出贡献非常有用。
注意 如果你发现任何编译失败,而
go build
却能正常工作,这很可能是一个 bug。 请随时在 请随时在 GitHub Issues 以帮助我们改进本项目。
插件名称 | 存储库网址 | 最低支持版本 | 最高支持版本 |
---|---|---|---|
数据库/sql | https://pkg.go.dev/database/sql | - | - |
echo | https://github.com/labstack/echo | v4.0.0 | v4.12.0 |
fasthttp | https://github.com/valyala/fasthttp | v1.45.0 | v1.57.0 |
gin | https://github.com/gin-gonic/gin | v1.7.0 | v1.10.0 |
go-redis | https://github.com/redis/go-redis | v9.0.5 | v9.5.1 |
Gorm | https://github.com/go-gorm/gorm | v1.22.0 | v1.25.9 |
grpc | https://google.golang.org/grpc | v1.44.0 | v1.67.0 |
hertz | https://github.com/cloudwego/hertz | v0.8.0 | v0.9.2 |
kratos | https://github.com/go-kratos/kratos | v2.6.3 | v2.8.2 |
log | https://pkg.go.dev/log | - | - |
logrus | https://github.com/sirupsen/logrus | v1.5.0 | v1.9.3 |
mongodb | https://github.com/mongodb/mongo-go-driver | v1.11.1 | v1.15.2 |
mux | https://github.com/gorilla/mux | v1.3.0 | v1.8.1 |
net/http | https://pkg.go.dev/net/http | - | - |
slog | https://pkg.go.dev/log/slog | - | - |
zap | https://github.com/uber-go/zap | v1.20.0 | v1.27.0 |
我们正在逐步开源我们支持的库,非常欢迎您的贡献💖!
重要事项 您期望的框架不在列表中?别担心,你可以轻松地将代码注入到任何官方不支持的框架/库中。
请参考 this document 开始使用。
我们期待您的反馈和建议。您可以加入我们的 DingTalk 群组 与我们交流。