使用插桩库

当你开发应用时,可能会使用第三方库和框架来加快开发进度。如果你随后使用 OpenTelemetry 对应用进行插桩,你可能希望避免额外花时间为所用的第三方库和框架手动添加链路、日志和指标。

许多库和框架已经原生支持 OpenTelemetry,或者通过 OpenTelemetry 的插桩获得支持, 因此它们能够生成可导出到可观测性后端的遥测数据。

如果你正在为使用第三方库或框架的应用或服务进行插桩, 请按照以下说明学习如何为你的依赖项使用原生插桩库和插桩库。

使用原生插桩库

如果某个库默认就支持 OpenTelemetry,你只需在应用中添加并配置 OpenTelemetry SDK, 就可以获取该库发出的链路、指标和日志。

该库可能需要一些额外的插桩配置。请查阅该库的文档以了解更多信息。

使用插桩库

如果某个库本身没有集成 OpenTelemetry,你可以使用 插桩库(instrumentation libraries) 为这个库或者框架生成遥测数据。

例如, net/http 的插桩库 会基于 HTTP 请求自动创建 spanmetrics

安装

每个插桩库是一个独立的 Go 包。通常你需要使用 go get 获取相应的包。例如,如果要安装由 Contrib repository 维护的插桩库,可以运行以下命令:

go get go.opentelemetry.io/contrib/instrumentation/{import-path}/otel{package-name}

然后根据库的要求在代码中配置它。

Getting Started 中展示了如何为一个 net/http 服务器设置插桩。

可用插桩库

完整的可用插桩库列表见 OpenTelemetry 支持库列表.

后续步骤

插桩库可以生成入站和出站 HTTP 请求的遥测数据,但不会对你的实际应用程序进行插桩。

你可以通过在代码中集成自定义插桩来丰富你的遥测数据。 这补充了标准库生成的遥测数据,并且可以让你更深入地了解正在运行的应用程序。