You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Kubernetes ingress-nginx请求的URI标签并查看/api/health指标?

解决Prometheus中获取具体URI请求指标的问题
  • 调整Ingress路径匹配规则
    若使用NGINX Ingress Controller,当Ingress路径配置为/时,所有请求会被统一匹配,导致metrics的path标签仅显示/。需修改Ingress配置,添加具体路径规则:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: your-ingress
    spec:
      rules:
      - host: www.somesite.com
        http:
          paths:
          - path: /api/health
            pathType: Prefix
            backend:
              service:
                name: your-service
                port:
                  number: 80
          - path: /
            pathType: Prefix
            backend:
              service:
                name: your-service
                port:
                  number: 80
    

    配置后,NGINX会单独匹配/api/health请求,metrics的path标签将显示真实请求路径。

  • 配置Ingress Controller的metrics参数
    确保Ingress Controller启用了具体路径捕获的metrics。检查启动参数是否包含--enable-metrics=true,还可在Ingress的metadata中添加注解,强制记录真实请求路径:

    metadata:
      annotations:
        nginx.ingress.kubernetes.io/configuration-snippet: |
          proxy_set_header X-Original-URI $request_uri;
    

    之后查看nginx_ingress_controller_requests类指标,其path标签会对应真实请求URI。

  • 调整Prometheus查询逻辑
    若无法修改Ingress配置,可尝试通过其他标签区分请求,比如request_uri或target_uri(不同Controller的标签可能有差异)。示例查询:

    nginx_ingress_controller_requests{host="www.somesite.com", request_uri=~"/api/health.*"}
    

    注意不同Controller的指标名称可能不同,比如部分会使用nginx_requests_total,需根据实际metrics调整。

  • 从后端服务获取metrics
    若后端服务本身暴露Prometheus metrics,可在服务逻辑中添加path标签,将请求URI注入到请求计数指标中,直接抓取/api/health的相关指标。

内容的提问来源于stack exchange,提问作者pluk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 01:15:39