OpenRouter 安全与可观测
OpenRouter 安全与可观测
Webhook
2 分钟阅读
Webhook
将追踪发送到任意 HTTP 端点
Webhook 可将追踪发送到任何能够接收 JSON 载荷的 HTTP 端点。这适用于与自定义可观测性系统、内部工具或任何接受 HTTP 请求的服务集成。
第 1 步:设置 webhook 端点
创建一个能够接收带 JSON 载荷的 POST 或 PUT 请求的 HTTP 端点。该端点应:
- 接受
application/json内容类型 - 成功时返回 2xx 状态码
- 可从公网访问
该端点将以 OpenTelemetry 协议(OTLP) 格式接收追踪,因此可与任何支持 OTLP 的系统兼容。
第 2 步:在 OpenRouter 中启用广播
前往 设置 > 可观测性(Settings > Observability),打开 启用广播(Enable Broadcast) 开关。

第 3 步:配置 Webhook
点击 Webhook 旁的编辑图标,并填写:
- URL:你的 webhook 端点 URL(例如
https://api.example.com/traces) - Method(可选):使用的 HTTP 方法,
POST(默认)或PUT - Headers(可选):用于身份验证或其他用途的自定义 HTTP 请求头,格式为 JSON 对象
需要身份验证的端点的请求头示例:
第 4 步:测试并保存
点击 测试连接(Test Connection) 验证配置。仅当测试通过时才会保存配置。测试期间,OpenRouter 会向你的端点发送带有 X-Test-Connection: true 请求头的空 OTLP 载荷。
第 5 步:发送测试追踪
通过 OpenRouter 发出一次 API 请求,并确认 webhook 端点已收到追踪数据。
载荷格式
追踪以 OTLP JSON 格式发送。每个请求包含一个 resourceSpans 数组,其中的 Span 数据包括:
- 追踪和 Span ID
- 时间戳和持续时间
- 模型和模型服务提供商信息
- Token 用量和费用
- 请求与响应内容(多模态内容已被剥离)
载荷结构示例:
使用场景
Webhook 目标端适用于:
- 自定义分析流水线:将追踪发送到自有数据仓库或分析系统
- 内部监控工具:与专有可观测性平台集成
- 事件驱动架构:基于 LLM 用量触发工作流
- 合规日志:将追踪存储到满足特定监管要求的系统中
- 开发与测试:使用 webhook.site 等服务检查追踪载荷
自定义元数据
trace 字段中的自定义元数据会作为 Span 属性包含在发送到 webhook 端点的 OTLP JSON 载荷中。
支持的元数据键
| 键 | OTLP 映射 | 说明 |
|---|---|---|
trace_id | traceId | 将多次请求归入同一条追踪 |
trace_name | Span name | 根 Span 的自定义名称 |
span_name | Span name | 层次结构中中间 Span 的名称 |
generation_name | Span name | LLM 生成 Span 的名称 |
parent_span_id | parentSpanId | 关联到追踪层次结构中已有的 Span |
示例
在 Webhook 中访问元数据
自定义元数据键会作为 Span 属性出现在 OTLP 载荷的 trace.metadata.* 命名空间下:
补充说明
user字段会映射到 Span 属性中的user.idsession_id字段会映射到 Span 属性中的session.id- 模型、Token 和费用数据包含所有标准 GenAI 语义约定(
gen_ai.*)
隐私模式
当该目标端启用 隐私模式 时,追踪中会排除提示词和补全内容。其余追踪数据——Token 用量、费用、时间信息、模型信息以及自定义元数据——仍会正常发送。详情见 隐私模式。