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