计算数据窗口中的峰值,kapacitor

时间:2017-07-19 06:43:39

标签: monitoring influxdb kapacitor

我想在5分钟的窗口中计算峰值光盘使用情况。 我是新手蜱脚本和kapacitor。这是示例代码。事情是我只想在活动窗口中计数(不是发出的2分钟窗口,即使它有一些数据点)。

var curr = stream
|from()
    .measurement('disk_usage_root_used_percentage')
|window()
    .period(5m)
    .every(2m)
    .align()
// here i want the count to happen
|alert()
    .crit(lambda: "count" >5 )
    .log('/tmp/alerts.log')

1 个答案:

答案 0 :(得分:2)

问: 如何在5分钟的窗口中计算峰值光盘使用情况?

当您指定period=5mevery=2m时会发生什么,Kapacitor将缓冲5分钟的点数据,并尝试每2分钟将其写入其管道。

因此,如果stream任务继续10m,您就会发现您的TICK脚本将被执行5次。

对于每个执行窗口,数据集将包含3m旧数据和2m新数据。基本上它们是重叠的,这很糟糕,因为这里的用例是仅分析最新的5m点数据并在需要时引发警报,而不是回溯旧数据。换句话说,您不希望被错误警报发送垃圾邮件。

要更正它,您需要为.period=5m节点指定.every=5mwindow。这样做,您会发现TICK在10分钟的运行时间内运行两次,每次运行包含最新的5分钟数据。

如果这有帮助,请告诉我。