Appearance
Broadcast 是 OpenRouter 的可观测性数据转发功能,开启后会自动将所有 API 请求的 trace(请求/响应、token 用量、费用、延迟、模型信息等)发送到你配置的第三方平台,无需修改应用代码。支持 Langfuse、Datadog、ClickHouse、S3、PostHog、Sentry 等 17+ 目的地。通过 user、session_id 和 trace 字段可附加用户 ID、会话 ID 和任意自定义元数据。支持按 API Key 过滤、配置采样率以及 Privacy Mode(排除 prompt/completion 内容)。
Broadcast 允许将 OpenRouter 请求的 trace 自动发送到外部可观测性和分析平台,无需修改应用代码,即可监控、调试和分析 LLM 使用情况。
开启 Broadcast
- 前往 Settings > Observability
- 打开 Enable Broadcast 开关
- 添加一个或多个目的地
开启后,OpenRouter 会自动为所有 API 请求发送 trace 数据到你配置的目的地。
使用组织账号时,必须是组织管理员才能修改 Broadcast 设置。
Trace 数据内容
每条 Broadcast trace 包含:
- 请求与响应数据:输入消息和模型输出(多模态内容会被剥离)
- Token 用量:prompt tokens、completion tokens、总计
- 费用信息:请求总费用
- 时间指标:开始时间、结束时间、延迟
- 模型信息:model slug 和 provider 名称
- Tool 使用情况:是否包含工具及是否发生工具调用
可选的附加字段
通过在 API 请求中添加以下字段,可以丰富 trace 上下文:
User ID(用户 ID): 将 trace 与特定终端用户关联,最长 128 字符:
json
{
"model": "openai/gpt-4o",
"messages": [{ "role": "user", "content": "Hello!" }],
"user": "user_12345"
}Session ID(会话 ID): 将相关请求(如一次对话或 agent 工作流)分组,最长 128 字符,也可通过 x-session-id HTTP Header 传入:
json
{
"model": "openai/gpt-4o",
"messages": [{ "role": "user", "content": "Hello!" }],
"session_id": "session_abc123"
}自定义元数据(trace 字段)
通过 trace 字段可传递任意 JSON 元数据,会转发到所有配置的目的地:
json
{
"model": "openai/gpt-4o",
"messages": [{ "role": "user", "content": "Summarize this document..." }],
"trace": {
"trace_id": "workflow_12345",
"trace_name": "Document Processing",
"span_name": "Summarization Step",
"generation_name": "Generate Summary",
"environment": "production",
"feature": "customer-support",
"version": "1.2.3"
}
}通用元数据键
以下元数据键在各可观测性平台中普遍支持:
| 键 | 说明 |
|---|---|
trace_id | 将多个 API 请求归入同一 trace,追踪多步骤工作流 |
trace_name | trace 的自定义名称,默认为模型名称 |
span_name | 创建包含 LLM 操作的父 span,建立层级结构 |
generation_name | 特定 LLM 生成调用的自定义名称,默认为模型名称 |
parent_span_id | 将 OpenRouter trace 嵌套到你自己的追踪系统中的现有 span |
与外部 Trace 关联
如果你有自己的追踪埋点(如 OpenTelemetry),可以用 parent_span_id 将 OpenRouter 调用嵌套到现有 span 下:
json
{
"model": "openai/gpt-4o",
"messages": [{ "role": "user", "content": "Hello!" }],
"trace": {
"trace_id": "your-existing-trace-id",
"parent_span_id": "your-existing-span-id"
}
}API Key 过滤
每个目的地可以配置只接收来自特定 API key 的 trace,适用于:
- 将应用不同部分的 trace 路由到不同的可观测性平台
- 隔离特定使用场景的监控
- 对生产 API key 和开发 API key 使用不同的采样率
采样率
每个目的地可配置采样率(0.0~1.0),控制发送 trace 的比例:
1.0:发送所有 trace0.5:随机发送约 50% 的 trace
采样是确定性的:如果提供了 session_id,该会话内的所有 trace 会被统一包含或排除,确保你在可观测性平台中看到的是完整的会话,而不是碎片化数据。
Privacy Mode
每个目的地可单独开启 Privacy Mode,开启后以下内容会从 trace 中被剥离:
- 输入消息(发送给模型的 prompt)
- 输出内容(模型返回的 completion)
其他 trace 数据(token 计数、费用、时间、模型信息、自定义元数据)仍正常发送。
Privacy Mode 按目的地独立配置,可以向一个目的地发送完整 trace 用于调试,同时向另一个目的地发送隐私脱敏 trace 用于成本监控。
安全性
目的地凭证在存储前会加密,仅在发送 trace 时才解密。Trace 在请求完成后异步发送,不会增加 API 响应延迟。
组织支持
Broadcast 可在个人账号和组织账号级别分别配置。组织管理员可以设置共享目的地,应用于组织内所有 API key,确保团队监控的一致性。
支持的目的地
| 目的地 | 说明 |
|---|---|
| Arize AI | ML 可观测性与监控 |
| Braintrust | LLM 评估与监控 |
| ClickHouse | 实时分析数据库 |
| Datadog | 全栈监控与分析 |
| Grafana Cloud | 可观测性与监控平台 |
| Langfuse | 开源 LLM 工程平台 |
| LangSmith | LangChain 可观测性 |
| New Relic | 全栈可观测性平台 |
| OpenTelemetry Collector | 发送到任意 OTLP 兼容后端 |
| PostHog | 产品分析与 LLM 追踪 |
| Ramp | AI 用量追踪与成本管理 |
| S3 / S3-Compatible | 存储到 S3、R2 等对象存储 |
| Sentry | 应用监控与错误追踪 |
| Snowflake | 云数据仓库分析 |
| W&B Weave | LLM 可观测性与追踪 |
| Webhook | 发送到任意 HTTP 端点 |
常见问题
Q: 开启 Broadcast 后会影响 API 响应速度吗?
A: 不会。Trace 在请求完成后异步发送,Broadcast 不会增加你的 API 响应延迟。
Q: 如果同时配置多个目的地,trace 会发送到所有目的地吗?
A: 是的,但每个目的地有独立的 API Key 过滤、采样率和 Privacy Mode 配置,可以灵活控制哪些 trace 发送到哪个目的地。
Q: 能否只监控特定用户或会话的 trace?
A: 在 API 请求中传入 user 和 session_id 字段,大多数目的地(如 Langfuse、PostHog)都支持按用户或会话过滤 trace 视图。