使用仪器库

在开发应用程序时,您可能会使用第三方库和框架来加速您的工作。如果您随后使用 OpenTelemetry instrumentation 您的应用程序,您可能希望避免花费额外的时间手动为您使用的第三方库和框架添加 traces、logs 和 metrics。

许多库和框架已经支持 OpenTelemetry,或者通过 OpenTelemetry instrumentation 进行支持,因此它们可以生成您可以导出到可观测性后端的 telemetry。

如果您正在 instrumentation 使用第三方库或框架的应用程序或服务,请遵循以下说明,了解如何为您的依赖项使用原生 instrumented 库和 instrumentation 库。

使用原生 instrumented 库

如果一个库默认包含 OpenTelemetry 支持,您可以通过在您的应用程序中添加和设置 OpenTelemetry SDK 来获取该库发出的 traces、metrics 和 logs。

该库可能需要一些额外的配置来进行 instrumentation。请参阅该库的文档以了解更多信息。

使用插装库

如果一个库不包含 OpenTelemetry 支持,您可以使用 instrumentation 库来为库或框架生成 telemetry 数据。

例如,Ecto 的插装库会根据查询自动创建span

设置

每个插装库都作为一个 Hex 包分发。要安装插装,请将依赖添加到您的 mix.exs 文件中。例如:

def deps do
  [
    {:opentelemetry_{package}, "~> 1.0"}
  ]
end

其中 {package} 是插装的名称。

请注意,某些插装库可能有先决条件。请查看每个插装库的文档以获取进一步说明。

可用检测库

如需完整的插装库列表,请参阅Hex 包列表

您也可以在注册表中找到更多可用的插装。

下一步

设置好插装库后,您可能需要为您自己的代码添加插装,以收集自定义遥测数据。

您可能还希望配置适当的导出器,以将您的遥测数据导出到一个或多个遥测后端。


最后修改日期 2024 年 8 月 8 日: 将集成移至注册表 (#4991) (825010e3)