本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

对 Node.js 应用程序进行自动检测/监控

自动检测/监控

Node.js 的自动检测/监控是通过将自动检测/监控的 JavaScript 库包含到您的应用程序中来完成的。支持广泛的 库和框架

自动检测/监控不需要对应用程序进行任何修改。要设置它,请按照以下步骤操作:

  1. 将 Open Telemetry 自动检测/监控 SDK 添加到您的应用程序:

    npm install --save @opentelemetry/api
    npm install --save @opentelemetry/auto-instrumentations-node
  2. 更新启动您的应用程序的命令以加载 SDK,可以通过更新 Docker 镜像的入口点或命令,或通过更新 Kubernetes 清单中的 command 来实现。添加 --require @opentelemetry/auto-instrumentations-node/register

    node --require @opentelemetry/auto-instrumentations-node/register app.js
  3. 使用额外的环境变量 配置服务名称和导出端点 部署您的应用程序,支持的协议有 gRPC 和基于 HTTP 的 protobuf。

  4. 通过在您的服务名称的指标/跟踪浏览器中搜索指标/跟踪,验证 SUSE Observability 是否正在接收跟踪和/或指标。

有关更多详细信息,请参阅 Open Telemetry 文档

通过环境变量配置的自动检测/监控仅支持跟踪,直到此 Open Telemetry 问题 解决为止。要启用自动检测/监控代码的指标,需要进行更改。请按照 Open Telemetry 文档 中的说明进行更改。

手动检测/监控

当您需要从不受自动检测/监控支持的代码部分获取指标、跟踪或日志时,可以使用手动检测/监控。例如不受支持的库、自家代码或业务级指标。

要捕获该数据,您需要修改您的应用程序。

  1. 将 Open Telemetry SDK 作为依赖项包含

  2. 在您的应用程序中添加代码,以在需要时捕获指标、跨度或日志。

有关此内容的详细文档,请参阅https://opentelemetry.io/docs/languages/js/instrumentation/[Open Telemetry Javascript SDK 文档页面]。

确保您使用 OTLP 导出器,并从代码中正确配置导出器端点。另请参阅https://opentelemetry.io/docs/languages/js/exporters/#_usage_with_nodejs[Open Telemetry 文档]。假设您按照文档设置了导出器,则需要配置的端点是`http://opentelemetry-collector.open-telemetry.svc.cluster.local:4317`,使用 gRPC。如果 gRPC 有问题,请参阅gRPC 与 HTTP