
Higress 监控实战从指标采集到告警调优把网关状态摸透【免费下载链接】higress AI Gateway | AI Native API Gateway项目地址: https://gitcode.com/GitHub_Trending/hi/higressHigress 是 AI 原生的云原生网关流量一上来最先要回答的问题往往不是它能不能跑而是它现在跑得怎么样。这篇文章讲 Higress 监控怎么从 0 搭起来Prometheus 指标采集怎么接、Grafana 面板看什么、告警阈值怎么定、大规模集群怎么给指标减负。读完你能在自己的环境里配出一套能落地的网关可观测性方案。找到数据源网关自带的 15020 指标端口先说结论Higress 网关底层是 Envoy指标直接从它的 admin 端口拿不用额外装采集组件。整条数据流是这样的Envoy 在 15020 端口暴露/stats/prometheusPrometheus 侧的采集器按固定间隔拉取数据再进 Grafana 展示、进 Alertmanager 触发告警。搞清楚这一点后面所有排障思路都是顺着这条链路倒推。部署完之后先手动确认端点是通的kubectl exec -it higress-gateway-pod -n higress-system -- \ curl -s localhost:15020/stats/prometheus | head只要能看到一堆envoy_前缀的指标行数据源就是好的后面采集不到别的地方都可以先排除 Envoy 这一层。接入 Prometheus一个开关加一个 selector helm/core/values.yaml 里gateway.metrics.enabled默认是 false把它翻成 true 之后Helm 模板才会渲染出采集资源gateway: metrics: enabled: true podMonitorSelector: release: kube-prome provider: monitoring.coreos.com关键是podMonitorSelector它不是采集开关而是标签过滤器。如果你用的不是 kube-prometheus-stack或者 release 名不叫kube-promePrometheus 根本不会去采这个 Pod后面所有面板都会是空的。provider决定渲染哪种 CRDmonitoring.coreos.com对应社区的 PodMonitoroperator.victoriametrics.com对应 VictoriaMetrics 的 VMPodScrape两套监控栈都支持。渲染出来的资源核心就这几行见 helm/core/templates/podmonitor.yaml 模板spec: selector: matchLabels: app.kubernetes.io/name: higress-gateway podMetricsEndpoints: - port: istio-prom path: /stats/prometheusinterval和scrapeTimeout不填就走 Prometheus 的全局默认值一般不用特意设。改完helm upgrade一下用kubectl get podmonitor -n higress-system确认资源存在再去 Prometheus 的 Targets 页面看有没有出现 higress-gateway 这个 target。Grafana 面板配置盯住四组指标仓库里带了一版监控面板效果流量、成功率、延迟、资源占用都有覆盖导入官方仪表盘模板后基本不用从零画自建面板的话Higress Grafana 面板配置聚焦到四组指标就够用了请求流量http_requests_total按cluster_name或route_name拆开看哪个后端在吃流量一目了然成功率1 - sum(5xx) / sum(total)比裸看 QPS 更有诊断意义延迟分布http_request_duration_seconds_bucketP95/P99 分位才是网关真正该背的指标资源使用率container_cpu_usage_seconds_total{pod~higress-gateway.*}和延迟放同一个 row 里方便定位是不是资源瓶颈。排查指标缺失按这个顺序走PodMonitor 资源在不在 → selector 标签和网关 Pod 是否一致 → 15020 端点 curl 通不通。九成问题卡在前两步。调告警阈值别让狼来了吵醒你 ⚠️原则一句话盯比例不盯绝对值。QPS 绝对值报警在高峰和低谷之间必然狼来了错误率才是稳定信号。一组可以直接用的规则groups: - name: higress.rules rules: - alert: HighErrorRate expr: sum(rate(http_requests_total{status_code~5..}[5m])) / sum(rate(http_requests_total[5m])) 0.01 for: 3m labels: severity: critical重点在for: 3m这行瞬时毛刺比如某个上游抖一下自己恢复了不值得拉人持续 3 分钟还在的 1% 5xx 才需要处理。延迟告警同理用 P99 持续超阈值的写法别用瞬时值。大规模场景给指标减负集群里服务一多Envoy 默认吐出的细粒度指标会让 cardinality 膨胀Prometheus 的抓取耗时和内存都会跟着失控。两个配置值得打开global: liteMetrics: true proxyStatsMatcher: inclusionRegexps: - http.*liteMetrics会让网关只暴露精简后的指标集在网关 Pod 里通过LITE_METRICS环境变量生效proxyStatsMatcher在 Envoy 侧过滤统计项默认.*全保留只留http.*能砍掉一大截你用不上的连接级细节。再配合适当放宽采集间隔、给网关容器配好 requests/limits监控开销能压到可以忽略的程度。再往上的量级——上百服务、多集群——单机 Prometheus 扛不住就换 Thanos 或 VictoriaMetrics 集群做长期存储把 retention 和聚合规则配好别指望靠单机扩容硬扛。监控搭得快不如用得对先把四组核心指标和一条错误率告警跑起来剩下的优化按需加。【免费下载链接】higress AI Gateway | AI Native API Gateway项目地址: https://gitcode.com/GitHub_Trending/hi/higress创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考