跳转到主要内容
ClickStack 使用 OpenTelemetry 标准来收集遥测数据 (日志、指标、 链路追踪和异常) 。链路追踪会通过自动插桩自动生成,因此无需手动 插桩即可获得链路追踪能力。 本指南涵盖:
  • 日志
  • 指标
  • 链路追踪
  • 异常

入门

安装 HyperDX OpenTelemetry 插桩包

使用以下命令安装 ClickStack OpenTelemetry 包

初始化 SDK

要初始化 SDK,需要在应用程序入口文件的顶部调用 init 函数。
这样会自动采集 Node.js 应用程序中的链路追踪、指标和日志。

设置日志收集

默认情况下,会自动收集 console.* 日志。如果你使用的是 winstonpino 等日志库,则需要为日志记录器添加一个 transport,才能将 日志发送到 ClickStack。如果你使用的是其他类型的日志记录器, 请联系我们,或在适用时查看我们的平台 集成 (例如 Kubernetes) 。
如果你使用 winston 作为日志记录器,则需要为日志记录器添加以下 transport。

设置错误收集

ClickStack SDK 可以自动捕获应用中的未捕获异常和错误,并附带完整的堆栈跟踪和代码上下文。 要启用此功能,你需要将以下代码添加到应用错误处理中间件的末尾,或者使用 recordException 函数手动记录异常。

故障排查

如果你在使用 SDK 时遇到问题,可以将 OTEL_LOG_LEVEL 环境变量设为 debug,以启用详细日志。

高级插桩配置

捕获控制台日志

默认情况下,ClickStack SDK 会捕获控制台日志。你可以通过 将 HDX_NODE_CONSOLE_CAPTURE 环境变量设为 0 来禁用此功能。
copy

附加用户信息或元数据

为了方便给与特定属性或标识符 (例如用户 id 或电子邮件) 相关的所有事件打上标签,你可以调用 setTraceAttributes 函数。调用后,它会为与当前 trace 关联的每条 日志/span 添加已声明的 属性。建议在给定请求/trace 中尽可能早地调用此函数 (例如在 Express 中间件栈中尽可能靠前的位置) 。 这是一种很方便的方式,可确保所有日志/spans 都会自动带上 后续搜索所需的正确标识符,而不必由你自己手动 打标签并传递这些标识符。 userIduserEmailuserNameteamName 会将对应的值填充到 sessions UI 中,但也可以省略。你还可以指定任何其他附加值,并用其搜索事件。
请确保启用 Beta 模式:将 HDX_NODE_BETA_MODE 环境 变量设为 1,或向 init 函数传入 betaMode: true,以 启用 trace 属性。

Google Cloud Run

如果您在 Google Cloud Run 上运行应用,Cloud Trace 会自动将采样请求头注入传入请求,目前会将每个实例的链路追踪采样限制为每秒 0.1 个请求。 @hyperdx/node-opentelemetry 包默认会将采样率覆盖为 1.0。 若要更改此行为,或配置其他 OpenTelemetry 安装,您可以手动配置环境变量 OTEL_TRACES_SAMPLER=parentbased_always_onOTEL_TRACES_SAMPLER_ARG=1,以 达到相同效果。 如需了解更多信息,以及强制对特定请求启用链路追踪,请参阅 Google Cloud Run 文档

自动插桩的库

以下库将由 SDK 自动插桩 (生成 trace) :

其他安装方式

使用 ClickStack OpenTelemetry CLI 运行应用

或者,你也可以使用 opentelemetry-instrument CLI 或 Node.js 的 --require 标志,无需修改任何代码即可为应用自动插桩。通过 CLI 安装可支持更多自动插桩的库和框架。
托管 ClickStack对于托管 ClickStack,可以省略 HYPERDX_API_KEY
OTEL_SERVICE_NAME 环境变量用于在 HyperDX 应用中标识你的服务,你可以将其设为任意名称。

启用异常捕获

要启用未捕获异常捕获功能,您需要将 HDX_NODE_EXPERIMENTAL_EXCEPTION_CAPTURE 环境变量设置为 1。
之后,如需自动捕获来自 Express、Koa 的异常,或手动捕获异常,请按照上文 设置错误收集 部分中的说明操作。

自动插桩的库

以下库将通过上述安装方法自动插桩 (生成追踪) :
最后修改于 2026年6月10日