指标参考
AISIX 以 Prometheus 文本格式暴露运维指标。Prometheus 服务器或其它兼容收集器可以抓取这些指标,用于控制面板、告警和 PromQL 查询。
默认情况下,Prometheus 指标在专用监听器 0.0.0.0:9090 的 GET /metrics 上启用。使用 observability.metrics.prometheus.enabled、observability.metrics.prometheus.addr 和 observability.metrics.prometheus.path 配置监听器。Admin API 监听器不提供指标。
指标端点按设计不进行认证,请仅向监控网络开放该监听器。
指标族会在 AISIX 首次记录观测值时注册。刚启动后抓取可能得到空响应;请先通过代理发送请求,再次抓取相应序列。
指标类型
指标类型决定数值如何变化以及应如何查询。
| 类型 | 行为 |
|---|---|
| counter | 累计值,在进程重启前只增不减,例如请求数或 Token 总数。使用 rate() 计算变化速率。 |
| gauge | 可增加或减少的当前值,例如进行中的请求或剩余额度。 |
| histogram | 按可配置桶统计观测值。AISIX 直方图会暴露 _bucket、_sum 和 _count 序列,可在计算百分位数前聚合。 |
| summary | 由每个 AISIX 实例计算分位数的观测值。摘要也暴露 _sum 和 _count,但分位数不能跨实例聚合。 |
请求指标
AISIX 提供兼容性请求计数器、LLM 流量详细计数器,以及当前进行中请求的 gauge。
详细请求计数器共享以下标签: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 和 outcome。
| 指标 | 类型 | 标签 | 说明 |
|---|---|---|---|
aisix_requests_total | counter | provider、model、status、outcome | 代理请求结果,是端点覆盖范围最广的兼容性序列。 |
aisix_llm_requests_total | counter | 详细请求标签 | Chat Completions 和 Messages 请求结果,包括成功和失败请求。 |
aisix_proxy_requests_total | counter | 详细请求标签 | Chat Completions 和 Messages 流量的详细请求结果。 |
aisix_proxy_failed_requests_total | counter | 详细请求标签 | outcome 不为 success 的 aisix_proxy_requests_total 子集。 |
aisix_proxy_in_flight_requests | gauge | endpoint、inbound_protocol | 代理当前正在处理的请求,按规范化端点和入站协议分组。 |
outcome 标签有四种值:
| 值 | HTTP 状态码 |
|---|---|
success | 200 到 399 |
client_error | 400 到 499,但不包括 429 |
rate_limited | 429 |
upstream_error | 其它所有状态码 |
详细请求序列还提供以下维度:
| 标签 | 说明 |
|---|---|
stream | 客户端是否请求流式响应。该标签出现在详细请求计数器和摘要延迟指标上。 |
is_fallback | 是否由故障转移目标处理请求。该标签出现在详细请求计数器上,但不出现在延迟指标上。 |
provider_key_name、user_name | provider_key_id 和 user_id 对应的可读名称。名称与 ID 一一对应,不会增加新的序列维度。控制面提供名称前,user_name 为 unknown。 |
inbound_protocol | 有界协议族。Chat 和 Messages 详细序列使用 openai 和 anthropic;进行中请求 gauge 还可使用 mcp、a2a 和 realtime。 |
MCP 请求在进行中请求 gauge 上使用 endpoint="/mcp" 和 inbound_protocol="mcp"。A2A Agent 调用在该 gauge 上使用 endpoint="/a2a" 和 inbound_protocol="a2a",并在 aisix_requests_total 上使用 provider="a2a" 和 model="a2a"。
延迟指标
AISIX 提供用于检查单个实例的摘要指标,以及用于跨网关实例计算延迟百分位数的分桶直方图。
两个详细持续时间摘要共享 endpoint、inbound_protocol、provider、model、upstream_model、provider_key_id、provider_key_name、api_key_id、team_id、user_id、user_name、stream、status 和 outcome 标签。首 Token 时间摘要使用相同标签,但不包含 stream、status 和 outcome。
| 指标 | 类型 | 标签 | 说明 |
|---|---|---|---|
aisix_request_duration_seconds | summary | provider、model、status | 兼容性序列中的端到端请求延迟。 |
aisix_llm_request_duration_seconds | summary | 详细持续时间标签 | Chat Completions 和 Messages 请求延迟。对于流式请求,测量响应开始前的时间,而不是完整流持续时间。 |
aisix_proxy_request_duration_seconds | summary | 详细持续时间标签 | Chat Completions 和 Messages 的详细请求延迟,流式语义与 aisix_llm_request_duration_seconds 相同。 |
aisix_llm_time_to_first_token_seconds | summary | 详细持续时间标签,但不含 stream、status 和 outcome | 流式 Chat Completions 和 Messages 请求从进入网关到生成首个 Token 的时间。 |
aisix_request_e2e_latency_seconds | histogram | env_id、endpoint、model、provider、status_class、streaming | Chat Completions、Messages 和 Responses 的客户端感知延迟。流式请求测量完整流持续时间。 |
aisix_request_ttft_seconds | histogram | env_id、endpoint、model、provider、status_class、streaming | 流式 Chat Completions 和 Messages 请求的首 Token 时间;streaming 始终为 true。 |