指标参考
AISIX 以 Prometheus 文本格式公开运行指标。Prometheus 服务器或其他兼容采集器可抓取这些指标,用于仪表盘、告警和 PromQL 查询。
默认在专用监听器上启用 Prometheus 指标。默认启动配置如下:
observability:
metrics:
prometheus:
enabled: true
addr: 0.0.0.0:9090
path: /metrics
Prometheus 从此监听器抓取 GET /metrics。
指标端点按设计不需要认证。请确保该监听器仅对监控网络开放。
每次抓取端点时,AISIX 都会公开配置状态。其他指标系列会在 AISIX 首次记录相应活动时注册,因此流量指标可能不会在启动后立即出现。请通过代理发送请求,然后再次抓取,即可看到相应序列。
指标目录
搜索指标名称、描述、标签和值,或按指标系列和类型筛选目录。 展开条目即可查看详细信息。
- 指标
- 59
- 系列
- 10
指标类型
持续累加并在进程重启前只增不减的值,例如请求总数或 Token 总数。使用 rate() 计算其变化速率。
可增可减的当前值,例如活跃请求数或剩余配额。
按可配置分桶统计的观测值。计算百分位数前,可以聚合 _bucket、_sum 和 _count 序列。
由各网关实例计算分位数的观测值。摘要也公开 _sum 和 _count,但其分位数无法跨实例聚合。
请求指标
跟踪请求结果以及代理当前正在处理的工作。
详细请求标签
本族的每个计数器都是每次客户端请求 采样一次,其 status 是调用方实际收到的状态码。第一个目标失败、随后由回退目标成功处理的请求,在这里只是一个 status="200" 样本;它所恢复的那次失败在本族中完全没有体现。统计上游尝试请使用[部署指标](#deployment-metrics),查看单次尝试请使用用量日志。
对于三个详细请求计数器,stream 记录客户端是否请求流式响应。is_fallback 记录请求是否由回退目标处理,并且不会出现在延迟指标中。
provider_key_name 和 user_name 是对应 ID 的可读名称。每个名称与其 ID 一一对应,因此不会增加新的序列维度。在控制平面提供名称前,user_name 为 unknown。
inbound_protocol 是有界的协议类型集合,由端点推导得出:Anthropic 协议路由报告 anthropic;/mcp、/a2a 和 /v1/realtime 分别报告 mcp、a2a 和 realtime;其他端点均报告 openai。在途请求仪表使用相同的值。
endpoint 始终是标准化的路由模板,而不是原始请求路径。带路径参数的路由会合并为一条序列,例如 /v1/batches/:id、/v1/videos/:id、/mcp/{server} 和 /passthrough/:provider/*rest;无法识别的路径报告为 other。
aisix_requests_total 。描述:兼容性序列中的代理请求结果,覆盖的端点范围最广。 。类型:counter 。标签数量:4 个标签
标签
provider, model, status, outcomeoutcome 的值
success, client_error, rate_limited, upstream_errorsuccess 表示 HTTP 200–399;client_error 表示除 429 外的 HTTP 400–499;rate_limited 表示 HTTP 429;其他所有状态均映射为 upstream_error。
行为
A2A 智能体调用使用 provider="a2a" 和 model="a2a"。
PromQL 示例
sum(rate(aisix_requests_total[5m])) by (outcome)aisix_llm_requests_total 。描述:模型推理请求的结果,包括成功和失败的请求。 。类型:counter 。标签数量:15 个标签
标签
endpoint, inbound_protocol, provider, model, upstream_model, provider_key_id, provider_key_name, api_key_id, team_id, user_id, user_name, stream, is_fallback, status, outcomeinbound_protocol 的值
openai, anthropic, realtimestream 的值
false, trueis_fallback 的值
false, trueoutcome 的值
success, client_error, rate_limited, upstream_errorsuccess 表示 HTTP 200–399;client_error 表示除 429 外的 HTTP 400–499;rate_limited 表示 HTTP 429;其他所有状态均映射为 upstream_error。
行为
覆盖调用模型的端点:聊天补全、补全、消息、Token 计数、响应、向量嵌入、重排序、音频、图像生成、视频和 realtime 会话。未调用模型的请求只计入 aisix_proxy_requests_total,包括 MCP 工具调用、A2A Agent 调用、服务提供方透传,以及文件、批处理和微调管理路由。
在分发前被拒绝的请求(例如请求体过大)会计入其目标端点,因此端点成功率的分母包括 这些失败。
aisix_proxy_requests_total 。描述:所有代理流量(包括模型推理和其他流量)的详细请求结果。 。类型:counter 。标签数量:15 个标签
标签
endpoint, inbound_protocol, provider, model, upstream_model, provider_key_id, provider_key_name, api_key_id, team_id, user_id, user_name, stream, is_fallback, status, outcomeinbound_protocol 的值
openai, anthropic, mcp, a2a, realtimestream 的值
false, trueis_fallback 的值
false, trueoutcome 的值
success, client_error, rate_limited, upstream_errorsuccess 表示 HTTP 200–399;client_error 表示除 429 外的 HTTP 400–499;rate_limited 表示 HTTP 429;其他所有状态均映射为 upstream_error。
行为
每次客户端请求采样一次,携带调用方实际收到的状态码。请求内部的重试和故障转移不会增加样本,因此这个计数器回答的是「调用方发起了多少请求、各自如何结束」,而不是「网关向上游发起了多少 次调用」。
aisix_proxy_failed_requests_total 。描述:结果不为 success 的代理请求子集。 。类型:counter 。标签数量:15 个标签
标签
endpoint, inbound_protocol, provider, model, upstream_model, provider_key_id, provider_key_name, api_key_id, team_id, user_id, user_name, stream, is_fallback, status, outcomeinbound_protocol 的值
openai, anthropic, mcp, a2a, realtimestream 的值
false, trueis_fallback 的值
false, trueoutcome 的值
client_error, rate_limited, upstream_errorclient_error 表示除 429 外的 HTTP 400–499;rate_limited 表示 HTTP 429;其他所有状态均映射为 upstream_error。
aisix_proxy_in_flight_requests 。描述:代理当前正在处理的请求,按标准化端点和入站协议分组。 。类型:gauge 。标签数量:2 个标签
标签
endpoint, inbound_protocolinbound_protocol 的值
openai, anthropic, mcp, a2a, realtime行为
MCP 请求使用 inbound_protocol="mcp";聚合网关使用 endpoint="/mcp",按服务器划分的端点使用 endpoint="/mcp/{server}"。A2A 调用使用 endpoint="/a2a" 和 inbound_protocol="a2a"。
PromQL 示例
sum(aisix_proxy_in_flight_requests) by (endpoint, inbound_protocol)aisix_proxy_client_cancelled_requests_total 。描述:调用方在网关发送响应头前断开连接的请求。 。类型:counter 。标签数量:1 个标签
标签
endpoint行为
这些请求不会产生正常结果,因此不会出现在其他请求计数器中。网关会在此处记录它们,并在访问日志中以状态码 499 记录。
该指标速率上升通常意味着调用方在等待首个 Token 时放弃。请将其与相同模型的 aisix_llm_time_to_first_token_seconds 对比。
调用方在响应头发送后断开连接的情况不计入此处。该请求已经产生正常结果和用量事件。
PromQL 示例
sum(rate(aisix_proxy_client_cancelled_requests_total[5m])) by (endpoint)aisix_proxy_request_body_limit_rejections_total 。描述:因超过 proxy.request_body_limit_bytes 而被拒绝的请求,按网关结束读取被拒绝请求体的方式分组。 。类型:counter 。标签数量:3 个标签
标签
endpoint, inbound_protocol, outcomeinbound_protocol 的值
openai, anthropic, mcp, a2a, realtimeoutcome 的值
completed, cap_reached, timeout, client_read_errorcompleted 表示调用方发送了声明的完整请求体,因此可以读取 413 响应。cap_reached 和 timeout 表示网关先停止接收请求体;client_read_error 表示调用方在发送请求体时断开连接。这三种情况下,调用方通常会看到连接关闭,而不是收到响应。
行为
网关会读取并丢弃被拒绝请求的请求体,以便调用方在同一连接上接收 413。该读取操作有上限,outcome 用于报告其结束方式。
除 completed 外,任何结果的占比上升都表示调用方看到的是连接关闭,而不是 413 响应。匹配的 aisix::body_limit 日志条目会记录同一 request_id 的声明大小、配置上限和已读取字节数。
这里只统计声明的 Content-Length 超过上限的请求。采用分块传输且超过上限的请求会在读取时被拒绝,没有可比的 outcome,并以状态码 413 出现在 aisix_requests_total 中。
PromQL 示例
sum(rate(aisix_proxy_request_body_limit_rejections_total[5m])) by (endpoint, inbound_protocol, outcome)aisix_auth_decisions_total 。描述:API Key、JWT 和缺少凭证路径上的调用方身份认证决策。 。类型:counter 。标签数量:3 个标签
标签
method, result, reasonmethod 的值
api_key, jwt, noneresult 的值
allowed, denied行为
允许请求的 reason 为 none。被拒绝请求使用有限集合中的原因,例如 missing_credentials、unknown_key、key_expired、jwt_bad_signature、jwt_untrusted_issuer 或 jwt_identity_unmapped。
PromQL 示例
sum(rate(aisix_auth_decisions_total{result="denied"}[5m])) by (method, reason)延迟指标
检查单个网关的延迟,或跨网关实例聚合直方图分桶。
延迟聚合与标签
跨网关实例的服务级仪表盘和告警应使用直方图,因为可在调用 histogram_quantile() 前聚合其 _bucket、_sum 和 _count 序列。摘要用于检查单个网关实例预先计算的分位数。摘要分位数无法跨实例聚合,因此不要对其取平均值。
每个直方图都有自己的分桶边界,因为两种分布不同:端到端延迟从毫秒级开始,而首个 Token 时间不可能快于生成 Token 的上游。两组边界均可配置。env_id 标识连接到 AISIX Cloud 的 AISIX 网关所服务的环境;AISIX 网关未连接 AISIX Cloud 时其值为 unknown。status_class 为 2xx、3xx、4xx、5xx 或 other。为控制分桶序列数量,不包含按密钥和按用户的标签;这些维度请使用用量分析。