指标参考
AISIX 以 Prometheus 文本格式公开运行指标。Prometheus 服务器或其他兼容采集器可抓取这些指标,用于仪表盘、告警和 PromQL 查询。
默认在专用监听器上启用 Prometheus 指标。默认启动配置如下:
observability:
metrics:
prometheus:
enabled: true
addr: 0.0.0.0:9090
path: /metrics
Prometheus 从此监听器抓取 GET /metrics。Admin API 监听器不提供指标。
指标端点按设计不需要认证。请确保该监听器仅对监控网络开放。
每次抓取端点时,AISIX 都会公开配置状态。其他指标系列会在 AISIX 首次记录相应活动时注册,因此流量指标可能不会在启动后立即出现。请通过代理发送请求,然后再次抓取,即可看到相应序列。
指标目录
搜索指标名称、描述、标签和值,或按指标系列和类型筛选目录。 展开条目即可查看详细信息。
- 指标
- 41
- 系列
- 8
指标类型
持续累加并在进程重启前只增不减的值,例如请求总数或 Token 总数。使用 rate() 计算其变化速率。
可增可减的当前值,例如活跃请求数或剩余配额。
按可配置分桶统计的观测值。计算百分位数前,可以聚合 _bucket、_sum 和 _count 序列。
由各网关实例计算分位数的观测值。摘要也公开 _sum 和 _count,但其分位数无法跨实例聚合。
请求指标
跟踪请求结果以及代理当前正在处理的工作。
详细请求标签
对于三个详细请求计数器,stream 记录客户端是否请求流式响应。is_fallback 记录请求是否由回退目标处理,并且不会出现在延迟指标中。
provider_key_name 和 user_name 是对应 ID 的可读名称。每个名称与其 ID 一一对应,因此不会增加新的序列维度。在控制平面提供名称前,user_name 为 unknown。
inbound_protocol 是有界的协议类型集合。详细的聊天和消息序列使用 openai 和 anthropic;在途请求仪表还可使用 mcp、a2a 和 realtime。
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, anthropicstream 的值
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_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, anthropicstream 的值
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, anthropicstream 的值
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 请求使用 endpoint="/mcp" 和 inbound_protocol="mcp"。A2A 调用使用 endpoint="/a2a" 和 inbound_protocol="a2a"。
PromQL 示例
sum(aisix_proxy_in_flight_requests) by (endpoint, inbound_protocol)延迟指标
检查单个网关的延迟,或跨网关实例聚合直方图分桶。
延迟聚合与标签
跨网关实例的服务级仪表盘和告警应使用直方图,因为可在调用 histogram_quantile() 前聚合其 _bucket、_sum 和 _count 序列。摘要用于检查单个网关实例预先计算的分位数。摘要分位数无法跨实例聚合,因此不要对其取平均值。
两个直方图均使用 10 毫秒到 300 秒的分桶边界。env_id 标识托管网关服务的环境;网关未连接 AISIX Cloud 时其值为 unknown。status_class 为 2xx、3xx、4xx、5xx 或 other。为控制分桶序列数量,不包含按密钥和按用户的标签;这些维度请使用用量分析。
aisix_request_duration_seconds 。描述:兼容性序列中的端到端请求延迟。 。类型:summary 。标签数量:3 个标签
标签
provider, model, status行为
摘要分位数由各 AISIX 实例计算,无法跨实例聚合。
aisix_llm_request_duration_seconds 。描述:聊天补全和消息请求的延迟。对于流式请求,该指标测量从请求开始到响应开始的时间。 。类型:summary 。标签数量:14 个标签
标签
endpoint, inbound_protocol, provider, model, upstream_model, provider_key_id, provider_key_name, api_key_id, team_id, user_id, user_name, stream, status, outcomeinbound_protocol 的值
openai, anthropicstream 的值
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_request_duration_seconds 。描述:聊天补全和消息请求的详细延迟,其流式语义与 LLM 时长序列相同。 。类型:summary 。标签数量:14 个标签
标签
endpoint, inbound_protocol, provider, model, upstream_model, provider_key_id, provider_key_name, api_key_id, team_id, user_id, user_name, stream, status, outcomeinbound_protocol 的值
openai, anthropicstream 的值
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_llm_time_to_first_token_seconds 。描述:流式聊天补全和消息请求从进入网关到生成首个 Token 的时间。 。类型:summary 。标签数量:11 个标签
标签
endpoint, inbound_protocol, provider, model, upstream_model, provider_key_id, provider_key_name, api_key_id, team_id, user_id, user_nameinbound_protocol 的值
openai, anthropicaisix_request_e2e_latency_seconds 。描述:客户端感知的聊天补全、消息和响应延迟,包括完整的流式传输时长。 。类型:histogram 。标签数量:6 个标签
标签
env_id, endpoint, model, provider, status_class, streamingstatus_class 的值
2xx, 3xx, 4xx, 5xx, otherstreaming 的值
false, true行为
分桶范围为 10 毫秒到 300 秒。跨网关实例计算百分位数前,请先聚合 _bucket 序列。
每个请求只观测一次。非流式请求和失败请求在处理程序返回时记录。流式请求在流结束时记录,包括客户端取消的情况;取消的流保留已提交的状态,并记录截至取消时的时长。
PromQL 示例
histogram_quantile(
0.90,
sum by (le) (rate(aisix_request_e2e_latency_seconds_bucket[5m]))
)aisix_request_ttft_seconds 。描述:流式聊天补全和消息请求的首个 Token 延迟。 。类型:histogram 。标签数量:6 个标签
标签
env_id, endpoint, model, provider, status_class, streamingstatus_class 的值
2xx, 3xx, 4xx, 5xx, otherstreaming 的值
truePromQL 示例
histogram_quantile(
0.90,
sum by (le) (rate(aisix_request_ttft_seconds_bucket[5m]))
)用量与成本指标
测量 Token 用量、估算支出和标准化客户端用量。
aisix_tokens_consumed_total 。描述:已完成的非流式聊天补全请求中 usage.total_tokens 的总和。 。类型:counter 。标签数量:2 个标签
标签
provider, modelaisix_llm_input_tokens_total 。描述:上游为聊天补全和消息请求报告的输入 Token 数。 。类型:counter 。标签数量:11 个标签
标签
endpoint, inbound_protocol, provider, model, upstream_model, provider_key_id, provider_key_name, api_key_id, team_id, user_id, user_nameinbound_protocol 的值
openai, anthropicaisix_llm_output_tokens_total 。描述:上游为聊天补全和消息请求报告的输出 Token 数。 。类型:counter 。标签数量:11 个标签
标签
endpoint, inbound_protocol, provider, model, upstream_model, provider_key_id, provider_key_name, api_key_id, team_id, user_id, user_nameinbound_protocol 的值
openai, anthropicaisix_llm_total_tokens_total 。描述:上游为聊天补全和消息请求报告的 Token 总数。 。类型:counter 。标签数量:11 个标签
标签
endpoint, inbound_protocol, provider, model, upstream_model, provider_key_id, provider_key_name, api_key_id, team_id, user_id, user_nameinbound_protocol 的值
openai, anthropicaisix_llm_spend_micro_usd_total 。描述:非流式聊天补全的估算支出,以微美元计;1 美元等于 1,000,000 微美元。 。类型:counter 。标签数量:11 个标签
标签
endpoint, inbound_protocol, provider, model, upstream_model, provider_key_id, provider_key_name, api_key_id, team_id, user_id, user_nameinbound_protocol 的值
openai, anthropicaisix_llm_tokens_by_client_total 。描述:聊天补全、消息和响应请求的 Token 用量,按标准化客户端、请求模型和 Token 类型分组。 。类型:counter 。标签数量:3 个标签
标签
client_type, model, token_typeclient_type 的值
openai-python, openai-node, anthropic-python, anthropic-typescript, claude-code, codex, cline, roo-code, kilocode, zoo-code, github-copilot, cursor, opencode, qwen-code, gemini-cli, crush, zed, aider, vercel-ai-sdk, langchain, llamaindex, litellm, curl, python-requests, httpx, aiohttp, okhttp, go-http-client, node, postman, browser, other, unknown无法识别的 User-Agent 映射为 other;缺少 User-Agent 时映射为 unknown。部署可通过管理员定义的映射规则(observability.metrics.client_type_rules)扩展此集合。完整的 User-Agent 字符串和版本仍会保留在请求日志和用量分析中。
token_type 的值
input, output, totaltotal 包含输入、输出以及 Anthropic 缓存创建和缓存读取 Token。
行为
model 是调用方请求的模型名称,与 aisix_llm_* Token 序列的 model 标签值相同。路由、语义、合议和故障转移分发会保留此别名,而不是报告所选直接模型。
有界的 client_type 白名单可防止客户端可控的 User-Agent 导致 Prometheus 基数无限增长。具体模型别名受已配置模型集合的限制,但通配符别名会记录通过该模式请求的每个具体模型名称。基数很重要时,请限制通配符访问并监控标签增长。
管理员定义的映射规则(observability.metrics.client_type_rules)可对更多客户端进行分类。规则在内置白名单之前匹配,并输出固定且经过验证的标签值,因此标签集合保持有界。
对于聊天补全和消息流量,跨标签聚合且包含缓存的总量与 aisix_llm_total_tokens_total 一致。/v1/responses Token 用量会出现在此客户端类型序列中,但不会出现在按密钥统计的指标系列中,因此这里的总量可能更大。
由于两个指标系列使用不同的标签集合,单条序列并不对应。专用客户端类型序列避免为按密钥统计的 Token 序列再增加一个标签维度。
Anthropic 将缓存 Token 与输入 Token 分开报告,因此 total 可能大于 input 与 output 之和。
PromQL 示例
sum by (client_type, model, token_type) (
rate(aisix_llm_tokens_by_client_total[5m])
)限流与预算指标
监控每个标签集合的限流拒绝,以及最新配额或预算状态。
aisix_ratelimit_rejections_total 。描述:因限流而被拒绝的聊天补全请求。 。类型:counter 。标签数量:1 个标签
标签
scopescope 的值
requests, tokens