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

Prometheus 如何在普罗米修斯预测中使用预测,prometheus,Prometheus,我对普罗米修斯还很陌生 我试图预测节点1和节点2上未来5小时的cpu使用情况 我的代码是 ''' ''' 由于cpu_的使用包括两个节点,当我使用上面的等式时,我得到了两个预测结果,我不想要它 因此,我通过添加 ''' ''' 我不确定这是不是正确的方式。我阅读了文件,其中提到predic_linear仅适用于仪表 多谢各位,主动监控实际上并不适用于cpu。它更倾向于耗尽系统资源,如内存或驱动器空间。如果100%的cpu使用率并不意味着应用程序存在性能问题,那么它就没有问题 如果您确实有一些基准

我对普罗米修斯还很陌生

我试图预测节点1和节点2上未来5小时的cpu使用情况

我的代码是

'''

''' 由于cpu_的使用包括两个节点,当我使用上面的等式时,我得到了两个预测结果,我不想要它

因此,我通过添加 '''

''' 我不确定这是不是正确的方式。我阅读了文件,其中提到predic_linear仅适用于仪表


多谢各位,

主动监控实际上并不适用于cpu。它更倾向于耗尽系统资源,如内存或驱动器空间。如果100%的cpu使用率并不意味着应用程序存在性能问题,那么它就没有问题

如果您确实有一些基准测试显示cpu不应该达到100%,那么它是基于反应的:如果cpu在给定的时间内停留在100%的cpu,您希望收到警报

关于你的问题,一个基于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仅适用于gauge:它可以应用于计数器,但正如本答案开头所述,它更适用于资源耗尽,您不会使用计数器测量资源

主动监控实际上并不适用于cpu。它更倾向于耗尽系统资源,如内存或驱动器空间。如果100%的cpu使用率并不意味着应用程序存在性能问题,那么它就没有问题

如果您确实有一些基准测试显示cpu不应该达到100%,那么它是基于反应的:如果cpu在给定的时间内停留在100%的cpu,您希望收到警报

关于你的问题,一个基于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仅适用于gauge:它可以应用于计数器,但正如本答案开头所述,它更适用于资源耗尽,您不会使用计数器测量资源

非常感谢Michael。非常有帮助。非常感谢Michael。非常有帮助。
    predict_linear(cpu_usage[5m],5*3600)
    sum(predict_linear(cpu_usage[5m],5*3600)).