Skip to main content
ClickStack 使用 OpenTelemetry 标准来收集遥测数据 (日志、指标、 链路追踪和异常) 。链路追踪会通过自动插桩自动生成,因此无需手动 插桩即可获得链路追踪能力。

入门

安装 HyperDX OpenTelemetry 插桩包

使用以下命令安装 ClickStack OpenTelemetry 包。

初始化 SDK

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

设置日志收集

默认情况下,会自动收集 console.* 日志。如果你使用的是 winston 或 pino 等日志库,则需要为日志记录器添加一个 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 都会自动带上 后续搜索所需的正确标识符,而不必由你自己手动 打标签并传递这些标识符。 userId、userEmail、userName 和 teamName 会将对应的值填充到 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_on 和 OTEL_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年9月26日