JavaScript 无代码插桩

在不修改源代码的情况下从您的应用程序捕获遥测数据

JavaScript 的无代码插桩提供了一种方法,可以在不进行任何代码更改的情况下插桩任何 Node.js 应用程序并从许多流行的库和框架捕获遥测数据。

设置

运行以下命令来安装相应的包。

npm install --save @opentelemetry/api
npm install --save @opentelemetry/auto-instrumentations-node

@opentelemetry/api@opentelemetry/auto-instrumentations-node 包安装了 API、SDK 和插桩工具。

配置模块

该模块具有高度可配置性。

一种选择是通过使用 env 从 CLI 设置环境变量来配置模块。

env OTEL_TRACES_EXPORTER=otlp OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=your-endpoint \
node --require @opentelemetry/auto-instrumentations-node/register app.js

或者,您也可以使用 export 来设置环境变量。

export OTEL_TRACES_EXPORTER="otlp"
export OTEL_EXPORTER_OTLP_ENDPOINT="your-endpoint"
export OTEL_NODE_RESOURCE_DETECTORS="env,host,os"
export OTEL_SERVICE_NAME="your-service-name"
export NODE_OPTIONS="--require @opentelemetry/auto-instrumentations-node/register"
node app.js

默认情况下,将使用所有 SDK 资源检测器。您可以使用环境变量 OTEL_NODE_RESOURCE_DETECTORS 来仅启用某些检测器,或完全禁用它们。

要查看完整的配置选项,请参阅 模块配置

支持的库和框架

许多流行的 Node.js 库都支持自动插桩。有关完整列表,请参阅 支持的插桩

故障排除

您可以通过将 OTEL_LOG_LEVEL 环境变量设置为以下值之一来设置日志级别:

  • 错误
  • 警告
  • 信息
  • 调试
  • 详细
  • all

默认级别为 info


无代码插桩配置

了解如何为 Node.js 配置无代码插桩