可观测性
A2A 流量与模型流量使用相同的遥测管道。用量事件字段会标识调用方、Agent、方法和结果;Prometheus 标签则用于区分 Agent 流量与模型流量。
可以使用这些信号统计 Agent 调用量并监控失败。限流和上游错误会出现在与模型流量相同的可观测性工具中;在 AISIX Cloud 中,预算拒绝也会显示在这些工具中。
用量事件
当网关能够把请求归因到已启用的 Agent 和调用方时,AISIX 会发出一条 A2A 用量事件。因不支持的上游认证、限流、上游失败,或 AISIX Cloud 中配置的预算而被拒绝的调用也包括在内;格式错误的请求体则可能在产生事件之前就被拒绝。
事件会进入与模型用量相同的接收端,并标识调用方、Agent、方法、结果和时间:
| 字段 | 值 |
|---|---|
inbound_protocol | a2a |
a2a_agent_name | 被调用的已注册 Agent。 |
a2a_method | 调用方原样写入的 JSON-RPC 方法,例如 message/send 或其 1.0 拼写 SendMessage;仅当 AISIX 能从请求体读取该方法时才有值。 |
a2a_operation | a2a_method 所对应的规范化操作。做聚合时请按此字段分组而不是原始方法:A2A 0.3 和 1.0 会把同一个操作拼成两种写法,无法识别的方法归为 unknown。 |
a2a_protocol_version | AISIX 向该 Agent 声明的协议版本,0.3 或 1.0。 |
a2a_task_id | 本次调用创建或操作的任务。用它可以把 message/send、tasks/get、tasks/resubscribe 中所有涉及同一任务的请求汇集起来。调用未涉及任务时为空。 |
a2a_context_id | 该任务所属的上下文(会话),用于把一次多轮交互中的多个任务串联起来。 |
a2a_task_state | Agent 最后上报的任务状态,已归一为 submitted、working、input-required、auth-required、completed、canceled、failed、rejected 或 unknown。没有任何响应携带状态时为空。 |
a2a_stream_event_count | 流式调用中转发给调用方的事件数。非流式调用为 0。 |
upstream_ttft_ms | Agent 发出第一个流式事件的耗时。结合 upstream_latency_ms,可以区分长时间没有任何输出的流与很快开始输出的流。 |
prompt_tokens、completion_tokens | 消息文本的 Token 数,由网关统计。参见 Token 统计。 |
api_key_id | 发起调用的调用方 API Key。 |
status_code | 调用结果状态。 |
upstream_latency_ms | 上游 Agent 调用耗时。 |
downstream_latency_ms | 调用方等待 Agent 调用的总时间。 |
request_id、occurred_at | 关联 ID 和时间戳。 |