ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Higress 监控面板与可观测性完整指南:从指标采集到告警落地

Higress 监控面板与可观测性完整指南:从指标采集到告警落地 Higress 监控面板与可观测性完整指南从指标采集到告警落地【免费下载链接】higress AI Gateway | AI Native API Gateway项目地址: https://gitcode.com/GitHub_Trending/hi/higressHigress 监控面板基于网关内置的 Prometheus 指标端点与官方 Grafana 模板构建。读完本文你能完成云原生网关监控配置开启指标采集、接入 PodMonitor、写好错误率告警让网关可观测性真正可用。没有监控时运维要付出什么代价先说三个最常见的翻车场景。错误率飙升只能猜。业务方报障说接口变慢你却分不清是网关路由配置错了还是某个上游服务病了。没有按状态码分布的时序数据排查只能靠翻日志碰运气。延迟劣化没有拐点。P99 从 80ms 慢慢爬到 500ms用户已经在抱怨你的数据里却一片平静——除非有延迟分布图否则根本看不到恶化过程。资源超限无人预警。网关 Pod 被反复 OOMKilled第二天才发现。CPU 和内存明明都暴露在指标里只是没人盯着。问题的根源其实很朴素Higress 网关内置的 Envoy 代理早在 15020 端口容器端口名istio-prom见 helm/core/templates/_pod.tpl就提供了/stats/prometheus端点只是默认情况下把这条数据接出去的路没打通。监控链路全景数据从哪来到哪去动手前先把数据流向过一遍后面每步改什么你就不会迷糊。网关指标端点Envoy 在 15020 端口暴露/stats/prometheus内容覆盖请求量、状态码分布、请求时延、TCP 收发字节数。PodMonitor 采集Helm chart 自带 PodMonitor 模板。PodMonitor 是一个自定义资源CRDKubernetes 中由控制器解释的扩展资源类型职责是告诉 Prometheus去哪些 Pod 的哪个路径抓取。告警规则Prometheus 按你写的表达式周期性求值持续越线就产生告警事件。Grafana 可视化面板查询 Prometheus把时序数据变成图和阈值线。四段链路里第 1 段网关已内置你要做的只是把 2 到 4 接起来。实操把链路接通打开 metrics 开关接入 PodMonitor 采集改动集中在 helm/core/values.yaml 的gateway.metrics区块升级发布后 PodMonitor 会随 chart 一起生成gateway: metrics: enabled: true # 总开关为 true 才创建 PodMonitor podMonitorSelector: release: kube-prome # 附加到 PodMonitor 的标签需与监控栈期望一致 provider: monitoring.coreos.com # CRD 组名用 VictoriaMetrics 时换 operator.victoriametrics.com interval: 15s # 抓取间隔控制写入频率 scrapeTimeout: 5s # 单次抓取超时渲染出来的 PodMonitor 长这样核心就是选哪个 Pod、抓哪个路径spec: selector: matchLabels: app.kubernetes.io/name: higress-gateway # 匹配网关 Pod 的标签 podMetricsEndpoints: - port: istio-prom # 网关指标端口 15020 path: /stats/prometheus interval: 15s # 与 values 中 interval 对应如果你的 Prometheus 由 kube-prometheus-stack 提供release: kube-prome默认就能对上换监控栈时只改provider和 selector其余不用动。导入官方 Grafana 面板看哪些视图Higress 官方面板自带三类核心视图导入模板后依次检查Downstream / Upstream请求量req/s、成功率非 5xx 占比、请求时延的 P50/P90/P99 曲线Workload每个网关节点的 CPU 与内存用量多副本时能直接看出负载是否倾斜Request上下游 QPS用于和容量规划对账。导入后你得到的视图大致如下采集是否生效最快的验证方式是进网关 Pod 直接看端点kubectl exec -it 网关Pod名 -n higress-system -- curl -s localhost:15020/stats/prometheus | head。输出里能看到istio_requests_total这样的序列名说明数据面已就绪。错误率告警规则怎么写告警本质是一条 Prometheus 表达式规则。以 5xx 错误率为例groups: - name: higress.rules rules: - alert: HighErrorRate expr: sum(rate(istio_requests_total{response_code~5..}[5m])) / sum(rate(istio_requests_total[5m])) 0.01 for: 3m # 持续越线 3 分钟才告警过滤瞬时尖峰 labels: severity: critical含义5 分钟窗口内状态码以 5 开头的请求占比若超过 1%且该状态持续 3 分钟就发出 critical 级告警。for这一行别省单次抖动误报比漏报更消耗你的信任。上线后调优按症状找旋钮指标基数过高时用 liteMetrics 减重何时调Prometheus 中时间序列数量暴涨、查询明显变慢时。cardinality基数指标标签组合的总数直接决定存储和查询成本标签组合越多代价越高。两个旋钮都在 helm/core/values.yamlglobal: liteMetrics: true # 启用轻量指标模式只保留最小必要指标集 gateway: proxyStatsMatcher: inclusionRegexps: - http.* # 只放行 http 前缀的统计项 - tcp.* # 只放行 tcp 前缀的统计项liteMetrics在网关启动参数层面砍掉冗余指标proxyStatsMatcher.inclusionRegexps在代理暴露 stats 时按前缀过滤默认.*是全收服务多的集群务必收紧。存储压力变大时调采集间隔与保留策略何时调retention数据保留期快写满磁盘或 Prometheus 的磁盘 IO 持续高位。先动interval从 15s 放到 30s写入量直接减半对分钟级排障基本无损。再动保留策略高频原始数据不必长期驻留长周期部分交给远程存储如 Thanos做降采样Prometheus 本地的 retention 只留作缓冲窗口。顺序很重要——先降写入量再谈扩盘。网关自身开销明显时控制资源余量何时调业务高峰时段网关 CPU/内存长期贴 90% 以上说明数据面含指标统计本身逼近极限。gateway.resources控制配额gateway: resources: requests: cpu: 2000m # 保底 CPU调度器据此放置 Pod memory: 2048Mi # 保底内存OOM 判定下限 limits: cpu: 2000m # 上限超出即限流 memory: 2048Mi # 上限超出即杀 Pod频繁被限流或 OOMKilled说明 limits 偏低上调长期利用率只有两三成说明 requests 虚高下调以释放调度余量。调整后观察面板里的 Workload 曲线确认效果。验收清单部署完成后逐项核对全部通过才算交付kubectl get podmonitor -n higress-system能列出网关对应的 PodMonitor进网关 Pod 执行curl -s localhost:15020/stats/prometheus有指标输出Grafana 面板中请求量、成功率、时延三类图均有非零数据Prometheus 查询istio_requests_total能返回最近时间点的序列错误率告警在测试环境能按预期触发并送达通知渠道想继续深入采集与推送逻辑可以从 pkg/ 目录的 bootstrap 与 kube 客户端代码入手PodMonitor 的完整渲染逻辑就在 helm/core/templates/podmonitor.yaml改任何采集行为前先读它。【免费下载链接】higress AI Gateway | AI Native API Gateway项目地址: https://gitcode.com/GitHub_Trending/hi/higress创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表