1

我想在 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')
4

1 回答 1

2

问: 如何计算 5 分钟窗口内的峰值磁盘使用量?

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

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

对于每个执行窗口,数据集将由3m旧数据和2m新数据组成。本质上它们是重叠的,这很糟糕,因为您在这里的用例是仅分析最新的5m点数据并在需要时发出警报,而不是回顾旧数据。换句话说,您不希望收到虚假警报的垃圾邮件。

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

让我知道这是否有帮助。

于 2017-07-26T00:25:06.813 回答