Prometheus 在ProMQ中将峰值检测为滚动百分比

Prometheus 在ProMQ中将峰值检测为滚动百分比,prometheus,promql,Prometheus,Promql,我有一个用例,我希望能够将给定指标随时间的变化率绘制为滚动和的百分比,但我不知道如何在PromQL中表达这一点 例如,如果当前和为100,而5分钟前的和为50,则在过去5分钟内增加了200%。我想以百分比的形式将该比率随时间的变化绘制成图表,这样我就可以对此发出警报 以下是我尝试过的: delta(firehose_counter_event_gorouter_total_requests_total{bosh_job_name="router"}[5m]) irate(firehose_cou

我有一个用例,我希望能够将给定指标随时间的变化率绘制为滚动和的百分比,但我不知道如何在PromQL中表达这一点

例如,如果当前和为100,而5分钟前的和为50,则在过去5分钟内增加了200%。我想以百分比的形式将该比率随时间的变化绘制成图表,这样我就可以对此发出警报

以下是我尝试过的:

delta(firehose_counter_event_gorouter_total_requests_total{bosh_job_name="router"}[5m])
irate(firehose_counter_event_gorouter_total_requests_total{bosh_job_name="router"}[5m]) >= 50
不过,我不太确定这些查询是否符合我的要求。我正在努力确保能够查询速率随时间的峰值,这样我就可以理解何时流量突然增加,超过了平均流量的正常起伏。我关心滚动平均值作为一个百分比,因为在一天中的某个时间和一年中的某个时间,流量通常会更高或更低,因此绝对值可能会给出很多误报,而凌晨3点的峰值和下午3点的峰值会因流量的不同而看起来有所不同。

ProMQ为这种情况提供了修正。以下查询将返回过去5分钟内每秒速率相对于前5分钟的相对变化:

rate(firehose_counter_event_gorouter_total_requests_total{bosh_job_name="router"}[5m]) /
rate(firehose_counter_event_gorouter_total_requests_total{bosh_job_name="router"}[5m] offset 5m)

我最后这么做了,但忘了更新问题,谢谢你的回复!