观测平台的环境维度由数据产生
所以「Langfuse 已上线」和「本地也在上报」是两件事:
- 「上线」指生产部署完成 —— 生产服务注入了密钥,trace 带
environment=production,所以 UI 里看得到 production。 - 本地看不到 development,不是环境配置问题,而是本地一条 trace 都没发出去。
排查本地不上报的两个静默根因(都在代码里,不报错):
- 进程里没有密钥:
tsx watch src/index.ts这类 dev 脚本不会自动加载根目录.env.local(不像 Next.js)。要显式注入:tsx watch --env-file=../../.env.local src/index.ts或dotenv -e ../../.env.local -- pnpm dev。 - 缺 key 时静默降级:观测初始化在两个密钥都缺失时直接返回 noop,连 warning 都不打 —— 服务照常运行,只是观测悄悄关了。
推论:合法的环境标签集合由「实际部署注入了什么」决定(本例只有 production / development,preview 不注入)。
相关:观测平台不能当运行状态真相源、本地开发脚本可能连生产资源、可观测正文要按环境分级放开
相关
-
假成功要有真失败信号 —— 本条是该 synthesis 的第五处证据:缺 key 时观测初始化直接返回 noop,连 warning 都不打