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

如何为ingress-nginx的Prometheus指标添加请求头标签?能否将team设为标签?

在ingress-nginx Prometheus指标中添加请求头标签(以team字段为例)

完全可行,你可以通过配置ingress-nginx的ConfigMap实现将请求头中的team字段添加到http_requests_total指标的标签里,具体操作步骤如下:

1. 编辑ingress-nginx的ConfigMap

找到集群中ingress-nginx对应的ConfigMap(通常名为ingress-nginx-controller,命名空间多为ingress-nginx),添加自定义Nginx配置片段提取请求头并注入Prometheus标签:

apiVersion: v1
kind: ConfigMap
metadata:
  name: ingress-nginx-controller
  namespace: ingress-nginx
data:
  nginx.conf: |
    http {
      # 提取请求头的team字段,不存在时默认设为unknown
      set_by_lua_block $request_team {
        return ngx.req.get_headers()["team"] or "unknown"
      }
      # 将提取到的字段设置为Prometheus标签
      prometheus_label team $request_team;
      # 保留ingress-nginx原有默认配置
      {{ include "nginx.ingress.kubernetes.io/nginx.conf" . }}
    }

2. 应用配置并重启ingress-nginx Pod

执行命令更新ConfigMap:

kubectl apply -f your-configmap-file.yaml

重启ingress-nginx控制器Pod,让新配置生效:

kubectl rollout restart deployment ingress-nginx-controller -n ingress-nginx

3. 验证配置效果

访问ingress-nginx的metrics端点(通常为http://<ingress-controller-ip>:10254/metrics),搜索http_requests_total指标,应该能看到包含team标签的输出,示例如下:

http_requests_total{... team="team-a", ...} 123
http_requests_total{... team="unknown", ...} 45

注意事项

  • 确保ingress-nginx已启用Prometheus metrics(默认启用,若未开启可在ConfigMap中添加enable-metrics: "true")
  • 若team请求头包含特殊字符,需在Lua代码中做清洗处理,避免破坏Prometheus标签的合法性
  • 自定义标签会增加指标基数,需根据业务需求合理控制标签数量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 23:47:05