静态配置
默认情况下,默认配置中已预先配置 prometheus。
提示词和补全 Token 直方图默认使用 1、10、50、100、200、500、1000、2000、5000、10000、20000、50000、100000、200000、500000 和 1000000 个 Token 作为桶边界。如果其他边界更适合实际工作负载,请配置 llm_prompt_tokens_buckets 和 llm_completion_tokens_buckets。
需要更新的文件取决于网关的部署方式:
- Host or Docker
- Kubernetes (Helm)
对于主机或 Docker 部署,请配置以下设置:
plugin_attr:
prometheus: # prometheus 插件属性
export_uri: /apisix/prometheus/metrics # 设置 Prometheus 指标端点的 URI。
metric_prefix: apisix_ # 设置 APISIX 生成的 Prometheus 指标前缀。
enable_export_server: true # 启用 Prometheus 导出服务器。
export_addr: # 设置 Prometheus 导出服务器的地址。
ip: 127.0.0.1 # 设置 IP 地址。
port: 9091 # 设置端口。
refresh_interval: 15 # 仅在 APISIX 中可用。
# 设置刷新缓存指标数据的时间间隔(秒)。
fetch_metric_timeout: 5 # 仅在 API7 企业版中可用。
# 获取指标的超时时间(秒)。超时后,API 仅返回基本指标,
# 包括 nginx_http_current_connections、http_requests_total、
# etcd_reachable、prometheus_disable、node_info、etcd_modify_indexes、
# shared_dict_capacity_bytes 和 shared_dict_free_space_bytes。
allow_degradation: false # 仅在 API7 企业版中可用。
# 如果为 true,则允许在共享内存不足时降级。
degradation_pause_steps: [ 60 ] # 仅在 API7 企业版中可用。
# 插件处于降级状态并回收其占用的共享内存时,
# 跳过插件执行的时间(秒)。
# metrics: # 为指标创建额外标签。
# http_status: # 这些指标将以 `apisix_` 为前缀。
# extra_labels: # 设置 http_status 指标的额外标签。
# - upstream_addr: $upstream_addr
# - status: $upstream_status
# expire: 0 # 指标的过期时间(秒)。
# 0 表示指标不会过期。
# http_latency:
# extra_labels: # 设置 http_latency 指标的额外标签。
# - upstream_addr: $upstream_addr
# expire: 0 # 指标的过期时间(秒)。
# 0 表示指标不会过期。
# bandwidth:
# extra_labels: # 设置 bandwidth 指标的额外标签。
# - upstream_addr: $upstream_addr
# expire: 0 # 指标的过期时间(秒)。
# 0 表示指标不会过期。
# default_buckets: # 省略此键时,内置 `http_latency` 直方图默认使用以下毫秒桶。
# 仅在需要覆盖默认值时取消下列列表的注释。
# - 1
# - 2
# - 5
# - 10
# - 20
# - 50
# - 100
# - 200
# - 500
# - 1000
# - 2000
# - 5000
# - 10000
# - 30000
# - 60000
# llm_latency_buckets: # 设置 `apisix_llm_latency` 的毫秒桶。
# # 自 API7 企业版 3.9.7 和 APISIX 3.17.0 起引入。
# # 同时适用于 `type=total` 和 `type=ttft`。
# # 自 API7 企业版 3.9.14、3.10.1 和 APISIX 3.18.0 起引入。
# - 100
# - 500
# - 1000
# - 5000
# llm_prompt_tokens_buckets: # 自 API7 企业版 3.9.14、3.10.1 和 APISIX 3.18.0 起引入。
# # 设置 `apisix_llm_prompt_tokens_dist` 直方图的桶,单位为 Token。
# - 100
# - 1000
# - 10000
# llm_completion_tokens_buckets: # 自 API7 企业版 3.9.14、3.10.1 和 APISIX 3.18.0 起引入。
# # 设置 `apisix_llm_completion_tokens_dist` 直方图的桶,单位为 Token。
# - 100
# - 1000
# - 10000
然后重新加载网关,使更改生效。
对于 Helm 部署,请更新用于渲染 plugin_attr.prometheus 的 Chart values,并保持 values 文件中的其他配置不变。
对于 APISIX Helm Chart,请设置以下 values:
apisix:
pluginAttrs:
prometheus:
export_uri: /apisix/prometheus/metrics
metric_prefix: apisix_
enable_export_server: true
export_addr:
ip: 127.0.0.1
port: 9091
refresh_interval: 15
# 在此添加其余 prometheus plugin_attr 字段。
对于 API7 网关 Helm Chart,请设置以下 values:
pluginAttrs:
prometheus:
export_uri: /apisix/prometheus/metrics
metric_prefix: apisix_
enable_export_server: true
export_addr:
ip: 127.0.0.1
port: 9091
fetch_metric_timeout: 5
allow_degradation: false
degradation_pause_steps: [ 60 ]
# 在此添加其余 prometheus plugin_attr 字段。
然后使用当前网关版本对应的 Chart 应用 values 文件:
helm upgrade <release-name> <chart-name> -n <namespace> -f values.yaml
你可以使用内置变量创建 extra_labels。有关更多信息,请参阅为指标添加额外标签。
参数
请参阅插件通用配置,了解所有插件通用的配置选项。
prefer_name
如果为 true,则在 Prometheus 指标中导出路由/服务名称而不是其 ID。
插件元数据
APISIX 和 API7 企业版都支持插件元数据。下表说明了可用字段、元数据键和版本边界。
插件元数据通过 Admin API 或声明式配置进行设置。它与在 config.yaml 中渲染 plugin_attr 的 Helm values 相互独立。
disabled_labels
要禁用的标签,用于减少指标数量并防止资源瓶颈。APISIX 使用
http_status和http_latency作为对应指标的元数据键,而 API7 企业版使用status和latency。定义指标身份的标签不能禁用,因为折叠这些标签会把不同的测量值合并到同一个时序中。这些标签包括 HTTP 状态指标的code,HTTP 延迟、带宽和 LLM 延迟指标的type,以及ai_cache_hits_total的layer。结构标签校验自 API7 企业版 3.9.17、3.10.4 和 APISIX 3.18.0 起引入。有关各产品适用的键和标签集,请参阅通过禁用标签降低指标基数。http_status
有效值:
route、matched_uri、matched_host、service、consumer、node、request_type、request_llm_model、llm_model和response_source的任意组合要为
apisix_http_status禁用的标签。API7 企业版改用status。自 APISIX 3.18.0 起引入。http_latency
有效值:
route、service、consumer、node、request_type、request_llm_model和llm_model的任意组合要为
apisix_http_latency禁用的标签。API7 企业版改用latency。自 APISIX 3.18.0 起引入。status
有效值:
route、route_id、matched_uri、matched_host、service、service_id、consumer、node、request_type、request_llm_model、llm_model、mcp_request_type和mcp_tool_name的任意组合要为
apisix_http_status指标禁用的标签。仅在 API7 企业版中可用;APISIX 改用http_status。request_type、request_llm_model和llm_model标签自 API7 企业版 3.9.7 起引入。mcp_request_type和mcp_tool_name标签自 API7 企业版 3.9.14 起引入。latency
有效值:
route、route_id、service、service_id、consumer、node、request_type、request_llm_model、llm_model、mcp_request_type和mcp_tool_name的任意组合要为
apisix_http_latency指标禁用的标签。仅在 API7 企业版中可用;APISIX 改用http_latency。request_type、request_llm_model和llm_model标签自 API7 企业版 3.9.7 起引入。mcp_request_type和mcp_tool_name标签自 API7 企业版 3.9.14 起引入。bandwidth
有效值:
APISIX:route、service、consumer、node、request_type、request_llm_model和llm_model的任意组合API7 企业版:APISIX的有效值外加route_id、service_id、mcp_request_type和mcp_tool_name要为
apisix_bandwidth指标禁用的标签。在 API7 企业版中可用,并自 APISIX 3.18.0 起引入。request_type、request_llm_model和llm_model标签自 API7 企业版 3.9.7 起引入。mcp_request_type和mcp_tool_name标签自 API7 企业版 3.9.14 起引入。stream_status
有效值:
node要为
apisix_stream_status关闭的标签。code与listen_addr决定该指标的身份,无法关闭。在 API7 企业版 3.9.x 系列中自 3.9.19 起可用,在 3.10.x 系列中自 3.10.6 起可用。llm_latency
有效值:
APISIX:route_id、service_id、consumer、node、request_type、request_llm_model和llm_model的任意组合API7 企业版:APISIX的有效值外加route和service要为
apisix_llm_latency指标禁用的标签。自 API7 企业版 3.9.7 和 APISIX 3.18.0 起引入。llm_prompt_tokens
有效值:
APISIX:route_id、service_id、consumer、node、request_type、request_llm_model和llm_model的任意组合API7 企业版:APISIX的有效值外加route、matched_uri、matched_host和service要为
apisix_llm_prompt_tokens指标禁用的标签。自 API7 企业版 3.9.7 和 APISIX 3.18.0 起引入。llm_completion_tokens
有效值:
APISIX:route_id、service_id、consumer、node、request_type、request_llm_model和llm_model的任意组合API7 企业版:APISIX的有效值外加route、matched_uri、matched_host和service要为
apisix_llm_completion_tokens指标禁用的标签。自 API7 企业版 3.9.7 和 APISIX 3.18.0 起引入。llm_active_connections
有效值:
route、route_id、matched_uri、matched_host、service、service_id、consumer、node、request_type、request_llm_model和llm_model的任意组合要为
apisix_llm_active_connections指标禁用的标签。自 API7 企业版 3.9.7 和 APISIX 3.18.0 起引入。llm_prompt_tokens_dist
有效值:
APISIX:route_id、service_id、consumer、node、request_type、request_llm_model和llm_model的任意组合API7 企业版:APISIX的有效值外加route、matched_uri、matched_host和service要为
apisix_llm_prompt_tokens_dist指标禁用的标签。自 API7 企业版 3.9.14、3.10.1 和 APISIX 3.18.0 起引入。llm_completion_tokens_dist
有效值:
APISIX:route_id、service_id、consumer、node、request_type、request_llm_model和llm_model的任意组合API7 企业版:APISIX的有效值外加route、matched_uri、matched_host和service要为
apisix_llm_completion_tokens_dist指标禁用的标签。自 API7 企业版 3.9.14、3.10.1 和 APISIX 3.18.0 起引入。ai_cache_hits_total
有效值:
APISIX:route、route_id、service、service_id、consumer、node、request_type、request_llm_model和llm_model的任意组合API7 企业版:APISIX的有效值外加matched_uri和matched_host要为
apisix_ai_cache_hits_total指标禁用的标签。layer是结构性标签,不能禁用,因为折叠它会把精确匹配缓存命中和语义缓存命中合并到同一个时序中。自 API7 企业版 3.9.16、3.10.3 和 APISIX 3.18.0 起引入。ai_cache_misses_total
有效值:
APISIX:route、route_id、service、service_id、consumer、node、request_type、request_llm_model和llm_model的任意组合API7 企业版:APISIX的有效值外加matched_uri和matched_host要为
apisix_ai_cache_misses_total指标禁用的标签。自 API7 企业版 3.9.16、3.10.3 和 APISIX 3.18.0 起引入。ai_cache_bypasses_total
有效值:
APISIX:route、route_id、service、service_id、consumer、node、request_type、request_llm_model和llm_model的任意组合API7 企业版:APISIX的有效值外加matched_uri和matched_host要为
apisix_ai_cache_bypasses_total指标禁用的标签。自 API7 企业版 3.9.16、3.10.3 和 APISIX 3.18.0 起引入。ai_cache_embedding_latency
有效值:
APISIX:route、route_id、service、service_id、consumer、node、request_type、request_llm_model和llm_model的任意组合API7 企业版:APISIX的有效值外加matched_uri和matched_host要为
apisix_ai_cache_embedding_latency指标禁用的标签。自 API7 企业版 3.9.16、3.10.3 和 APISIX 3.18.0 起引入。