如何保持Ingress NGINX控制器指标量的可管理性与有效性

如何保持Ingress NGINX控制器指标量的可管理性与有效性

💡 原文英文,约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控制器的指标如何受到影响?

在多租户环境中,每个主机的指标会增加标签值,导致指标数量显著增加。

如何平衡可观测性与成本/复杂性之间的关系?

需要保留关键指标,同时剔除不必要的标签和指标,以保持监控的有效性。

➡️

继续阅读