Vercel Daemons 现可向 Vercel Tracing 发送 OpenTelemetry 追踪

Published · AI Daily — AI-assisted deep research, methodology & disclosure

Daemons 可直接向 Vercel Tracing 发送追踪:在默认配置的 Node.js daemon 中升级 @vercel/otel 2.3.0+,并在 worker 初始化前调用 registerOTel,自动导出已记录 spans。

事件概述

2026 年 11 月 13 日,Vercel 在更新日志中宣布:Vercel Daemons 现在可以把 OpenTelemetry 追踪数据直接发送到 Vercel Tracing。按官方说法,这样开发者和他们的智能体就能把后台工作进程的运行情况,与项目里其他追踪数据放在一起查看。公告作者是 Vercel 基础设施软件工程师 Gal Schlezinger,原文标注阅读时间约一分钟,篇幅很短,信息都很具体。

具体怎么做

官方给出的机制有三步。第一,Vercel 会为每个 daemon 提供一个 Unix 套接字,用来接收 OTLP/HTTP 格式的追踪数据,并把这个套接字的路径写进环境变量 VERCEL_OTEL_SOCKET_PATH。第二,把 @vercel/otel 升级到 2.3.0 或更高版本,使用默认配置的 Node.js daemon 就会自动导出追踪数据:SDK 会检测到这个套接字,并把工作进程记录的 span 发送给 Vercel。第三,在工作进程启动之前初始化 OpenTelemetry。官方示例只有两行代码,在 worker.ts 里导入 registerOTel,并以 registerOTel({ serviceName: 'my-daemon' }) 调用,服务名由开发者自己取。

如何查看数据

这些 span 可以通过 Vercel CLI 取得。公告给出的命令是 vercel traces search,加上 --project 指定项目、--service 指定服务名,再加 --json 输出 JSON。官方的说明是:可在项目内按服务名搜索,并返回 JSON 供智能体使用,示例注释写的是搜索最近一小时的 daemon span。文末指向两份文档:daemon 追踪文档和 Vercel Tracing 文档,细节请以文档为准。

为什么值得关注

先说背景,这部分是我们的解读,不是公告原文。后台工作进程通常没有页面请求那样清晰的入口,出了问题时,开发者往往只能翻日志。追踪把一次操作拆成带时间的 span,能看出时间花在了哪一步。这次变化的实际价值在于,daemon 的 span 与项目其他追踪出现在同一处,不必另搭一套收集链路,也不必自己决定把数据发到哪里:路径由平台通过环境变量给出,SDK 自动识别。span 先经本机 Unix 套接字发送到 Vercel Tracing 服务,不需要为 daemon 单独配置对外的收集端地址。这一点公告没有展开,我们只做一般性的说明。

另一点是对智能体友好。公告特意提到,CLI 可以返回 JSON 供智能体使用,也就是说,让编码智能体或运维智能体去查询某个 daemon 最近一小时的 span,已经是官方设想的用法。这与近来平台把可观测性数据开放给自动化工具的方向一致。

需要留意的边界

公告只明确说了 Node.js daemon 在默认配置下可以自动导出,并要求 @vercel/otel 至少为 2.3.0。其他运行时、自定义配置、采样与保留期限、计费方式,原文都没有说明,我们不做推测,需要时请查阅文档。公告里的措辞是 daemon 现在可以发送追踪数据,没有写明是否对所有套餐开放,也没有写 daemon 本身的版本要求,这些都应在使用前确认。另外,示例强调要在工作进程启动前初始化 OpenTelemetry,否则启动阶段的操作可能不会被记录,这是从顺序要求推出的常识,官方没有写出后果。

对不同团队的意义

如果要在项目中接入 OpenTelemetry 观测,团队可使用 @vercel/otel 2.3.0 或更高版本,并在工作进程初始化之前调用 registerOTel。官方示例给出了基础实现路径,通过引入模块并注册服务名以接上导出。SDK 负责导出 worker 记录的 spans,若后续需要记录特定业务步骤,团队可按需自行创建相应 span。服务名要取得清楚,因为之后查询时用的就是它;一个项目里如果有多个 daemon,用不同的服务名区分,检索结果会干净得多。这是我们从命令参数得出的使用建议,官方没有专门写。

上线前的核对清单

建议在正式依赖前做四件小事。其一,确认依赖版本,@vercel/otel 不低于 2.3.0。其二,确认初始化代码在工作进程启动之前执行。其三,部署后用 vercel traces search 按服务名查一次,确认确实有 span 返回。其四,阅读 daemon 追踪文档,核对套餐、运行时和保留期限等公告没有覆盖的条件。四件事都不复杂,但每一件缺了,都可能让你以为已经接好追踪,实际却什么也查不到。

小结

这是一条小而实用的更新:对使用默认配置、平台提供 Unix socket 的 Node.js daemon,升级 @vercel/otel 到 2.3.0 或更高版本,在 worker 启动前调用 registerOTel,daemon 的 span 就会出现在 Vercel Tracing,并能用 vercel traces search 以 JSON 取回。对已经在用 Vercel Daemons 跑后台任务的团队,改动成本很低,值得试一次。

Sources

FAQ

Vercel Daemons 现在能做什么新事情?

Daemons 现在可以把 OpenTelemetry 追踪数据直接发送到 Vercel Tracing,让开发者和智能体把后台工作进程的运行情况,与项目里其他追踪放在一起查看,不必另搭一条独立的收集链路。

Node.js daemon 要怎样才能自动导出追踪?

先把 @vercel/otel 升级到 2.3.0 或更高版本,使用默认配置,并在工作进程启动前调用 registerOTel 初始化。Vercel 会提供 Unix 套接字,路径写在 VERCEL_OTEL_SOCKET_PATH,SDK 自动检测。

怎样查看 daemon 发出的追踪数据?

可使用 Vercel CLI 的 vercel traces search 命令,加上 --project 指定项目、--service 指定服务名,并用 --json 输出 JSON。这样既能在项目内按服务名检索,也方便智能体直接读取结果。