Skip to content

Broadcast 是 OpenRouter 的可观测性数据转发功能,开启后会自动将所有 API 请求的 trace(请求/响应、token 用量、费用、延迟、模型信息等)发送到你配置的第三方平台,无需修改应用代码。支持 Langfuse、Datadog、ClickHouse、S3、PostHog、Sentry 等 17+ 目的地。通过 usersession_idtrace 字段可附加用户 ID、会话 ID 和任意自定义元数据。支持按 API Key 过滤、配置采样率以及 Privacy Mode(排除 prompt/completion 内容)。

Broadcast 允许将 OpenRouter 请求的 trace 自动发送到外部可观测性和分析平台,无需修改应用代码,即可监控、调试和分析 LLM 使用情况。

开启 Broadcast

  1. 前往 Settings > Observability
  2. 打开 Enable Broadcast 开关
  3. 添加一个或多个目的地

开启后,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_nametrace 的自定义名称,默认为模型名称
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:发送所有 trace
  • 0.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 AIML 可观测性与监控
BraintrustLLM 评估与监控
ClickHouse实时分析数据库
Datadog全栈监控与分析
Grafana Cloud可观测性与监控平台
Langfuse开源 LLM 工程平台
LangSmithLangChain 可观测性
New Relic全栈可观测性平台
OpenTelemetry Collector发送到任意 OTLP 兼容后端
PostHog产品分析与 LLM 追踪
RampAI 用量追踪与成本管理
S3 / S3-Compatible存储到 S3、R2 等对象存储
Sentry应用监控与错误追踪
Snowflake云数据仓库分析
W&B WeaveLLM 可观测性与追踪
Webhook发送到任意 HTTP 端点

常见问题

Q: 开启 Broadcast 后会影响 API 响应速度吗?

A: 不会。Trace 在请求完成后异步发送,Broadcast 不会增加你的 API 响应延迟。

Q: 如果同时配置多个目的地,trace 会发送到所有目的地吗?

A: 是的,但每个目的地有独立的 API Key 过滤、采样率和 Privacy Mode 配置,可以灵活控制哪些 trace 发送到哪个目的地。

Q: 能否只监控特定用户或会话的 trace?

A: 在 API 请求中传入 usersession_id 字段,大多数目的地(如 Langfuse、PostHog)都支持按用户或会话过滤 trace 视图。