使用仪器库
在开发应用程序时,您可能会使用第三方库和框架来加速您的工作。如果您随后使用 OpenTelemetry instrumentation 您的应用程序,您可能希望避免花费额外的时间手动为您使用的第三方库和框架添加 traces、logs 和 metrics。
许多库和框架已经支持 OpenTelemetry,或者通过 OpenTelemetry instrumentation 进行支持,因此它们可以生成您可以导出到可观测性后端的 telemetry。
如果您正在 instrumentation 使用第三方库或框架的应用程序或服务,请遵循以下说明,了解如何为您的依赖项使用原生 instrumented 库和 instrumentation 库。
使用原生 instrumented 库
如果一个库默认包含 OpenTelemetry 支持,您可以通过在您的应用程序中添加和设置 OpenTelemetry SDK 来获取该库发出的 traces、metrics 和 logs。
该库可能需要一些额外的配置来进行 instrumentation。请参阅该库的文档以了解更多信息。
截至今天,我们尚未发现任何原生集成 OpenTelemetry 的 Go 库。如果您知道此类库,请告知我们。
使用插装库
如果一个库不自带 OpenTelemetry 支持,您可以使用仪器库来为该库或框架生成遥测数据。
例如,针对 net/http 的仪器库会根据 HTTP 请求自动创建Span和Metrics。
设置
每个仪器库都是一个包。通常,这意味着您需要使用 go get 获取相应的包。例如,要获取在 Contrib 仓库中维护的仪器库,请运行以下命令:
go get go.opentelemetry.io/contrib/instrumentation/{import-path}/otel{package-name}
然后根据库的要求在您的代码中进行配置以激活它。
入门指南 提供了一个示例,展示了如何为 net/http 服务器设置仪器。
可用软件包
您可以在 OpenTelemetry 注册表中找到可用仪器库的完整列表。
下一步
仪器库可以执行诸如生成入站和出站 HTTP 请求的遥测数据等操作,但它们不会对您的实际应用程序进行仪器化。
通过在代码中集成自定义仪器来丰富您的遥测数据。这可以补充标准的库遥测,并能提供对您正在运行的应用程序更深入的洞察。