💡
原文英文,约1900词,阅读约需7分钟。
📝
内容提要
Ingress NGINX控制器在Kubernetes中管理HTTP/HTTPS流量,但因生成过多时间序列而受到关注。主要原因是控制器通过多个维度(如路径、状态码等)标记指标,导致高流量环境中指标数量激增。文章探讨了导致指标增长的因素及减轻策略,包括禁用某些标签、聚合状态码和使用Grafana Cloud工具控制指标增长。
🎯
关键要点
- Ingress NGINX控制器用于管理Kubernetes中的HTTP/HTTPS流量,但生成过多时间序列引发关注。
- 控制器通过多个维度标记指标,导致高流量环境中指标数量激增。
- 多个请求标签导致指标数量增加,例如HTTP路径、状态码、方法等。
- 每个主机的指标会增加标签值,特别是在多租户环境中。
- 路径标签的粒度过高,可能导致指标爆炸。
- 多个副本的Ingress控制器会重复生成相同的指标,增加总时间序列数量。
- 可以通过命令行参数禁用某些标签以减少指标数量。
- 聚合状态码和控制直方图的桶配置可以有效减少指标的基数。
- 使用Prometheus录制规则或外部工具进行预聚合可以控制高基数数据的增长。
- 关注关键指标,剔除不必要的标签和指标,以保持可观测性。
- Grafana Cloud提供工具帮助管理指标基数,优化数据采集过程。
- 找到可观测性与成本/复杂性之间的平衡,确保监控有效且Ingress-NGINX控制器高效运行。
❓
延伸问答
Ingress NGINX控制器的主要功能是什么?
Ingress NGINX控制器用于管理Kubernetes中的HTTP和HTTPS流量路由。
为什么Ingress NGINX控制器会生成过多的时间序列?
因为控制器通过多个维度(如路径、状态码等)标记指标,导致在高流量环境中指标数量激增。
有哪些策略可以减少Ingress NGINX控制器的指标数量?
可以禁用某些标签、聚合状态码、使用Prometheus录制规则或外部工具进行预聚合等。
如何使用Grafana Cloud来管理Ingress NGINX控制器的指标?
Grafana Cloud提供了卡迪纳利管理仪表板和自适应指标功能,帮助分析和优化指标的使用。
在多租户环境中,Ingress NGINX控制器的指标如何受到影响?
在多租户环境中,每个主机的指标会增加标签值,导致指标数量显著增加。
如何平衡可观测性与成本/复杂性之间的关系?
需要保留关键指标,同时剔除不必要的标签和指标,以保持监控的有效性。
➡️