在 Node.js 客户端库中启用遥测信号

Google Cloud 为 Node.js 应用提供强大的监控、日志记录和诊断功能。

Node.js 客户端库经过插桩处理,可以发出跟踪数据。插桩是选择性加入的,您需要明确启用它。本文档介绍了可用的信号以及如何启用这些信号。

可用信号

Node.js 客户端库经过插桩处理,可以生成以下信号:

  1. 每个逻辑客户端请求的 INFO span。通常,客户端结构体中的单个方法调用会获得此类 span(例如,对 SecretManagerServiceClient 调用 accessSecretVersion)。
  2. 每次低级别 RPC 尝试的 INFO span。通常,客户端结构体中的单个方法会获得一个此类 span,但如果库必须重试远程过程调用 (RPC),则可能会有更多此类 span。

这些 span 和日志遵循 OpenTelemetry Semantic Conventions,并包含其他 Google Cloud 属性。span 和日志都应适合生产环境监控。这些信号包含标准 OpenTelemetry 属性(例如,http.response.status_code 和 rpc.system.name)。

如需查看标准属性的完整列表,请参阅 OpenTelemetry HTTP 和 gRPC 语义惯例。

启用遥测信号

为保护敏感数据,遥测信号默认处于停用状态。

在 Node.js 中,您必须配置客户端以发出跟踪记录并且 必须配置订阅者和导出器以将这些信号发送到外部服务。

如需配置客户端,您可以设置以下环境变量:

export GOOGLE_SDK_NODE_ENABLE_TRACING=true

启用跟踪后,如果您的应用在调用客户端库方法时在当前上下文中具有活跃的 OpenTelemetry span,则客户端库会自动将其 span 链接为活跃 span 的子项。

导出跟踪记录

在客户端库中启用遥测后,您必须将应用配置为收集此数据并将其导出到可观测性服务。

如需详细了解如何配置 OpenTelemetry 跟踪记录关联 数据,请参阅 可观测性示例 在 Node.js 代码库中。

如需将 tracing span 导出到 Google Cloud 客户端库 生成的 OpenTelemetry,您需要设置跟踪器提供程序和导出器:

const cloudTraceExporter = new TraceExporter();
const spanProcessor = new BatchSpanProcessor(cloudTraceExporter);

const provider = new NodeTracerProvider({
  spanProcessors: [spanProcessor],
});
provider.register();