如何在普罗米修斯预测中使用预测

时间:2019-06-15 00:36:54

标签: prometheus

我对普罗米修斯很陌生,

我正在尝试预测节点1和节点2上未来5个小时的CPU使用率。

我的代码是

'''

    predict_linear(cpu_usage[5m],5*3600)

''' 由于cpu_usage包含两个节点,因此当我使用上面的方程式时,我得到了两个预测结果,而我并不想这样做。

所以我通过添加来改进代码 '''

    sum(predict_linear(cpu_usage[5m],5*3600)).

''' 我不确定这是否正确。我阅读了文档,并提到predic_linear仅用于量规。

谢谢大家

1 个答案:

答案 0 :(得分:1)

主动监控实际上不适用于cpu。而是用于系统资源耗尽,例如内存或驱动器空间。 100%的CPU使用率没有任何问题,但这并不意味着您的应用程序存在性能问题。

如果您确实有一些基准表明cpu不应达到100%,那么它是基于反应性的:如果给定的时间段内cpu停留在100%cpu,您将收到警报。 / p>

关于您的问题,基于5分钟的数据进行预测以预测接下来的5个小时确实很嘈杂。应用程序在几分钟(甚至几十分钟)内增加消耗的情况并不少见。而且,即使应用程序内存使用的形状是一个完美的步骤,predic_linear()函数也会使用线性回归a来计算在该步骤的底部和顶部(在某个点)的平均速率。

如果内插到5个小时,那么这种小的消耗速度将迅速加起来。例如,如果将节点设置为中等大小(4GiB),并且在t0时内存消耗接近0,则未检测到内存故障的最大速率为4*Gi/(5*60)=~13MB/min。如果对此进行提醒,您将有很多误报。

我发现它对以下用途很有帮助

  • 增加测量数据的范围(经验值〜插值时间的20%或25%,因此5h预测为1h)
  • 调整规则中的for子句以减少误报
  • 增加电流消耗的限制:如果电流水平小于60%,则检测到的断电的可能性不大

最后,您的问题有很多要点:

  • 计算cpu的总和:您宁愿计算出可以给您总体cpu使用量的平均值-我从来没有发现这特别有用,因为应用程序可能会卡在cpu上并受cpu限制
  • 两个预测结果:我希望这是您想要的,应该对每个CPU分别发出警报
  • predict_linear仅用于计量器:它可以应用于计数器,但是如本答案开头所述,它用于资源耗尽,并且您不会使用计数器来测量资源。