我想在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')
答案 0 :(得分:2)
问:强> 如何在5分钟的窗口中计算峰值光盘使用情况?
答强>
当您指定period=5m
和every=2m
时会发生什么,Kapacitor将缓冲5分钟的点数据,并尝试每2分钟将其写入其管道。
因此,如果stream
任务继续10m
,您就会发现您的TICK脚本将被执行5
次。
对于每个执行窗口,数据集将包含3m
旧数据和2m
新数据。基本上它们是重叠的,这很糟糕,因为这里的用例是仅分析最新的5m
点数据并在需要时引发警报,而不是回溯旧数据。换句话说,您不希望被错误警报发送垃圾邮件。
要更正它,您需要为.period=5m
节点指定.every=5m
和window
。这样做,您会发现TICK在10分钟的运行时间内运行两次,每次运行包含最新的5分钟数据。
如果这有帮助,请告诉我。