JavaScript 零代码插桩

无需修改源代码即可从应用程序捕获遥测数据

JavaScript 零代码插桩方案为 Node.js 应用提供了一种插桩方式,无需修改任何代码,即可对任意 Node.js 应用进行插桩,并采集众多主流类库与框架的遥测数据。

设置

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

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

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

配置该模块

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

一种选择是通过命令行界面(CLI)利用 env 命令设置环境变量来配置模块:

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 环境变量设置为以下值之一来设置日志级别:

  • none
  • error
  • warn
  • info
  • debug
  • verbose
  • all

默认级别是 info


零代码插桩配置

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