简而言之克隆 HackerNews Analyzer,在
.env 中填写您的 OTLP 端点和标记,然后粘贴 agent 提示词。后端无需导入 OpenTelemetry;agent 会在进程启动时配置 @hyperdx/node-opentelemetry。所需时间:约 10 分钟前置条件
- Node 18+ 和 npm
- ClickStack OTLP/HTTP 端点和摄取令牌:
- **ClickHouse Cloud:**打开服务,然后依次选择 ClickStack → 配置 OpenTelemetry exporter → 环境变量。协议为
http/protobuf。请求头为authorization=<ingestion token>,不带Bearer前缀。 - **本地 collector:**使用
http://localhost:4318。如果 collector 未启用安全保护,请将authorization=留空。
- **ClickHouse Cloud:**打开服务,然后依次选择 ClickStack → 配置 OpenTelemetry exporter → 环境变量。协议为
克隆代码仓库
克隆 HackerNews Analyzer,安装依赖项并复制环境变量模板:.env,然后在此目录中为应用添加插桩。
为应用添加插桩
1
运行应用
在克隆的 打开 http://localhost:5001。您将看到年份选择器、汇总统计信息、活动图表、热门用户和域表,以及搜索框。您可以随意点击浏览:切换年份,深入查看新闻条目。
此时,应用程序虽在运行,但尚未插桩。ClickStack 尚未显示任何数据,正等待遥测数据。
hn-news-analyzer 目录中启动应用。ClickHouse 数据源默认使用公网只读演示集群,因此无需额外配置即可运行:
2
配置环境
SDK 会读取标准的 OpenTelemetry exporter 变量,而非在源代码中硬编码。打开
.env 并设置:OTEL_EXPORTER_OTLP_ENDPOINT 是 OTLP/HTTP 端点 (端口 4318) 。OTEL_EXPORTER_OTLP_HEADERS 是授权请求头,格式为 authorization=<token>,不带 Bearer 前缀。如果 collector 未强制实施身份验证,请将标记留空 (OTEL_EXPORTER_OTLP_HEADERS=authorization=) 。该变量仍必须存在;如果未设置或完全为空,SDK 将跳过初始化。Browser SDK 会复用这些值。vite.config.ts 会在构建时将端点和标记写入公开 bundle,因此请使用一次性的摄取标记,而不要使用生产环境标记。3
为应用程序添加遥测埋点
选择一种方式。三种方式最终都会得到同一个完成插桩的应用程序。
- 使用智能体插桩
- 手动插桩
- 使用预先插桩的分支
克隆仓库并填写
.env 后,在该目录中将以下提示粘贴给编程智能体,为应用程序添加插桩。4
生成流量并查看遥测数据
重启应用程序,使新的启动命令和刚构建的浏览器包生效:确认启动横幅中针对 


日志、指标、链路追踪和 session replay 都会进入同一 UI,使用相同的 query language,并自动关联。
/v1/traces、/v1/metrics 和 /v1/logs 显示了三行 “Health check passed”。重新加载浏览器选项卡,让 Vite 提供更新后的 bundle,然后切换年份并点击文章以生成流量。打开 ClickStack UI:- 前往 搜索,筛选最近 5 分钟的数据。
hn-analyzer-api的日志会不断流入。

- 点击某个 request,然后沿 trace 向上查看。你将看到 Express handler span、一个指向
sql-clickhouse.clickhouse.com且包含实际网络耗时的子 HTTP span,以及同一 trace 上关联的console.log记录。

- 打开 Session Replay,播放与 trace 时间线同步、可拖动浏览的浏览器 session 视频。

了解更多
- HackerNews Analyzer:本指南中进行插桩的演示仓库。
- 会话回放:功能概览、SDK 选项和隐私控制。
- 会话回放演示:一个使用本地 ClickStack 实例的自包含演示。
- ClickStack 入门:部署 ClickStack 并摄取你的第一批数据。
- 所有示例数据集:其他示例数据集和相关指南。