Grafana 最近引入了自适应指标,旨在减少基数并因此降低云成本。
翻译自 Why Did Grafana Labs Need to Add Adaptive Metrics? 。
当谈论云原生架构和 Kubernetes 的挑战时,很难不提到高昂的云成本。即使成功过渡到云原生后,组织机构面临的一个主要问题是运营成本的意外上升。讽刺的是,在提高应用程序生产力、运营效率和安全性方面,可观测性也是降低这些成本的一种方式,但当依赖于它来改善应用程序生产力、运营效率和安全性时,成本也可能很高。
在可观测性领域,用于监控的度量数据的激增是云原生成本的一个主要原因。这是因为冗余的度量数据激增(通常在事故或配置错误后出现峰值)会导致云上的存储、计算能力、内存消耗、分析和其他昂贵的资源的浪费。在观测性的背景下,这个问题被描述为基数过高,因为在概括意义上,根据 Merriam-Webster 的定义,"基数"是指给定集合中的元素数量。在可观测性的背景下,基数指的是与特定标签相关联的值的数量。
作为云原生环境中流行的开源监控工具,Prometheus 的度量数据经常受到关注,以便更好地管理基数,因为这些度量数据对于可观测性至关重要。Grafana Labs 也感受到了这个问题,该公司几乎以其著名的 Grafana 面板而闻名。作为回应,Grafana 最近引入了自适应指标,旨在减少基数,并因此降低云成本,并将其提供给 Grafana Cloud 用户。
通过自动化流程,可以减少指标系列的数量来实现减少基数。它通过自动化识别和通过聚合消除未使用的时间序列数据的过程来实现。通过减少系列或基数的数量,自适应指标旨在帮助组织优化云开销。此外,这些指标通过自动化协助对收集的数据进行解释和提取可行动的见解,以进行有意义的观测和决策,从而产生可操作的见解。
数据科学家解决的一个标准问题是减少基数,这涉及评估各个值对目标变量的预测准确性的贡献。企业管理协会(EMA)的分析师 Torsten Volk 告诉 The New Stack 说,例如,在可观测性中,目标变量通常是应用程序性能、用户体验、成本和弹性。为了减少基数,软件可以简单地应用标准技术,如主成分分析、目标均值编码和分箱。这些计算根据各个值对准确预测目标变量的贡献,合并或消除值, Volk 说。
"例如,对于响应时间的毫秒级精确数字的跟踪,将这些数字转化为百分位数可能不会导致任何预测准确性的损失。或者,与跟踪数据流的每个单个值(例如内存使用情况)相比,算法可以查看历史数据,并确定通过在分钟甚至 10 分钟级别进行平均值分析,您将获得相同的预测准确性," Volk 说。"这不是一个微不足道的挑战,因为在某些情况下,通过亚秒级测量值可以显著提高预测准确性,而在其他情况下,通过在 60 分钟内聚合这些相同的测量值可能会给您带来相同的准确性水平。"
如上所述,Grafana 最初开发自适应指标来解决其自身的基数挑战。Grafana Labs 的 CTO Tom Wilkie 告诉 The New Stack 说:" Prometheus 因其良好的原因而变得非常受欢迎,但是当一个组织快速采用时,不可预测的增长和基数可能是一个真正的挑战。我们在 Grafana Labs 自己身上也感受到了这种痛苦。我们在为 Grafana Cloud 运行自己的 Prometheus 监控时花了很多钱,因为我们的一个集群的活动系列已经超过 1 亿个。"自适应指标就是我们为解决这个问题而构建的解决方案。我们知道,在当前的宏观经济环境下,预算收紧、人们对 6500 万美元的可观测性账单感到不解,一种以灵活、智能的方式帮助您削减一些不必要成本的功能对我们的用户来说将非常有价值,就像对我们自己一样。"
正如 Wilkie 所解释的,开源改变了供应商与客户之间的关系,因为客户可以随时自己运行它。
我们将与客户的关系视为长期合作伙伴关系,因此即使这意味着我们短期内的增长较少,我们也希望为他们做正确的事情(主动降低他们的账单),Wilkie 说。"通过自适应指标等功能,我们正在提出这样一个论点,即与自己运行开源软件相比,使用 Grafana Cloud 始终更具成本效益。"
在 Grafana Labs 的 Archana Kesavan(产品营销总监)和 Jen Villa(高级产品经理,数据库)共同撰写的博文中,他们描述了 Grafana 的自适应指标功能如何分析"进入 Grafana Cloud 的每个度量"并将其与用户访问和交互度量的方式进行比较。特别是,他们写道,它考虑了每个度量是否:
- 用于警报或记录规则。
- 用于支持仪表板。
- 通过 Grafana Explore 或 Grafana 的 API 进行查询。
为了回答前两个问题,它分析了用户托管的 Grafana 中的警报规则、记录规则和仪表板。为了回答第三个问题,它查看了用户过去 30 天的查询日志。根据这三个信号,自适应指标确定度量是否未使用、部分使用或是可观测性生态系统的一个重要组成部分:
- 未使用的度量。根据这三个信号,没有任何关于该度量的引用。
- 部分使用的度量。度量正在被访问,但它被使用标签分割为许多时间序列,并且人们只使用了其中的一小部分。
- 使用的度量。该度量的所有标签都被用于对数据进行切片和分析。
"我们在 150 多个客户环境中进行的初步测试表明,通过将未使用和部分使用的度量聚合为基数较低的版本,自适应指标用户平均可以将时间序列数量减少 20% 至 50% ," Kesavan 和 Villa 写道。