计算数据 window 中的峰值,kapacitor
count peak values in a data window, kapacitor
我想计算 window 5 分钟内的峰值磁盘使用量。
我是 tick script 和 kapacitor 的新手。这是示例代码。问题是我只想计算活动 window(不是发出的 2 分钟 window,即使它有一些数据点)。
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')
问:
如何计算 5 分钟内 window 的峰值磁盘使用量?
答:
当您指定 period=5m
和 every=2m
时会发生什么,Kapacitor 将缓冲 5 分钟的点数据,并尝试每 2 分钟将其写入其管道。
因此,如果 stream
任务持续 10m
,您会发现您的 TICK 脚本将总共执行 5
次。
对于每次执行 window,数据集将由 3m
的旧数据和 2m
的新数据组成。本质上它们是重叠的,这很糟糕,因为您在这里的用例是仅分析最新的 5m
点数据并在需要时发出警报,而不是回顾旧数据。换句话说,您不希望收到误报的垃圾邮件。
要更正它,您需要为 window
节点指定 .period=5m
和 .every=5m
。这样做你会发现 TICK 在 10 分钟后得到两次 运行,每次 运行 包含最近 5 分钟的数据。
如果这有帮助,请告诉我。
我想计算 window 5 分钟内的峰值磁盘使用量。 我是 tick script 和 kapacitor 的新手。这是示例代码。问题是我只想计算活动 window(不是发出的 2 分钟 window,即使它有一些数据点)。
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')
问: 如何计算 5 分钟内 window 的峰值磁盘使用量?
答:
当您指定 period=5m
和 every=2m
时会发生什么,Kapacitor 将缓冲 5 分钟的点数据,并尝试每 2 分钟将其写入其管道。
因此,如果 stream
任务持续 10m
,您会发现您的 TICK 脚本将总共执行 5
次。
对于每次执行 window,数据集将由 3m
的旧数据和 2m
的新数据组成。本质上它们是重叠的,这很糟糕,因为您在这里的用例是仅分析最新的 5m
点数据并在需要时发出警报,而不是回顾旧数据。换句话说,您不希望收到误报的垃圾邮件。
要更正它,您需要为 window
节点指定 .period=5m
和 .every=5m
。这样做你会发现 TICK 在 10 分钟后得到两次 运行,每次 运行 包含最近 5 分钟的数据。
如果这有帮助,请告诉我。