可观测性
A2A 流量与模型流量使用相同的遥测管道。用量事件字段会标识调用方、Agent、方法和结果;Prometheus 标签则用于区分 Agent 流量与模型流量。
可以使用这些信号统计 Agent 调用量并监控失败。限流、预算和上游错误都会出现在与模型流量相同的可观测性工具中。
用量事件
当网关能够把请求归因到已启用的 Agent 和调用方时,AISIX 会发出一条 A2A 用量事件。因不支持的上游认证、限流、预算或上游失败而被拒绝的调用也包括在内;格式错误的请求体则可能在产生事件之前就被拒绝。
事件会进入与模型用量相同的接收端,并标识调用方、Agent、方法、结果和时间:
| 字段 | 值 |
|---|---|
inbound_protocol | a2a |
a2a_agent_name | 被调用的已注册 Agent。 |
a2a_method | 被调用的 JSON-RPC 方法,例如 message/send;仅当 AISIX 能从请求体读取该方法时才有值。 |
api_key_id | 发起调用的调用方 API Key。 |
status_code | 调用结果状态。 |
latency_ms | 调用端到端延迟。 |
request_id、occurred_at | 关联 ID 和时间戳。 |
A2A 调用没有模型 Token,因此 Token 和成本字段为零。需要按 Agent 归因调用量时,请使用 a2a_agent_name 和 a2a_method,而不是依赖 Token 或花费分析。
事件不会包含请求或响应消息内容。它目前也不会把 A2A 任务标识(task id、context id)或任务状态作为独立字段拆出。
A2A 用量事件通过与模型用量事件相同的路径投递。在托管部署中,它们会流向与模型流量相同的用量接收端;同时也会扇出到已配置的 OTLP、SLS 或 Datadog 导出器,因此 A2A 流量会与网关的其余流量一起显示。
指标
A2A 请求会出现在网关的 Prometheus 指标中。使用下表中的标签筛选相关指标序列:
| 目标 | 指标 | 过滤条件 |
|---|---|---|
| 按结果统计 A2A 请求。 | aisix_requests_total | provider="a2a" 和 model="a2a" |
| 跟踪正在处理的 A2A 请求。 | aisix_proxy_in_flight_requests | endpoint="/a2a" 和 inbound_protocol="a2a" |
| 检查 A2A 用量事件发送情况。 | aisix_usage_events_emitted_total | handler="a2a" |
筛选用量事件发送情况时应使用 handler。该计数器会限制协议标签的基数,并把 A2A 事件归入 other。这只影响 Prometheus 发送计数器;实际投递的用量事件仍会将流量标识为 A2A,并包含 Agent 名称和方法。
指标通过专用指标监听器的 GET /metrics 暴露。完整指标目录和标签语义请参见指标参考。
验证指标
先通过网关发送一次 A2A 调用,再抓取专用指标监听器。下例使用默认监听地址和路径;如果启动配置设置了不同的 observability.metrics.prometheus.addr,请相应调整地址。指标族会在首次观测后注册,因此只有记录调用之后才会出现 A2A 序列:
curl -sS "http://127.0.0.1:9090/metrics" | grep -E 'handler="a2a"|provider="a2a"'
输出应包含以下两类指标样本:
| 指标 | 标签 |
|---|---|
aisix_usage_events_emitted_total | handler="a2a" |
aisix_requests_total | provider="a2a" |
下一步
你现在已了解 A2A 调用在用量事件和指标中的位置。使用以下指南查看完整指标目录,或调整产生这些信号的流量:
- 指标参考:查看完整指标目录、标签和 A2A 相关说明。
- 限流与预算:对 A2A 调用应用请求限制、并发限制和预算。
- 控制 Agent 访问:将调用方 API Key 的权限限定为特定 Agent 或全部 Agent。