Monitoring 统计数据窗口中的峰值,kapacitor

Monitoring 统计数据窗口中的峰值,kapacitor,monitoring,influxdb,kapacitor,Monitoring,Influxdb,Kapacitor,我想在5分钟的时间内计算磁盘使用的峰值。 我不熟悉tick脚本和kapacitor。这是示例代码。问题是我只想在活动窗口中计数(而不是发出的2分钟窗口,即使它有一些数据点) Q: 如何计算5分钟内的峰值光盘使用量 A: 当您指定period=5m和every=2m时,Kapacitor将缓冲5分钟的点数据,并尝试每2分钟将其写入管道 因此,如果stream任务持续10m,您会发现您的勾号脚本将总共执行5次 对于每个执行窗口,数据集将由较旧数据的3m和较新数据的2m组成。本质上,它们是重叠的,这是

我想在5分钟的时间内计算磁盘使用的峰值。 我不熟悉tick脚本和kapacitor。这是示例代码。问题是我只想在活动窗口中计数(而不是发出的2分钟窗口,即使它有一些数据点)

Q: 如何计算5分钟内的峰值光盘使用量

A: 当您指定
period=5m
every=2m
时,Kapacitor将缓冲5分钟的点数据,并尝试每2分钟将其写入管道

因此,如果
stream
任务持续
10m
,您会发现您的勾号脚本将总共执行
5次

对于每个执行窗口,数据集将由较旧数据的
3m
和较新数据的
2m
组成。本质上,它们是重叠的,这是不好的,因为这里的用例只是分析最新的
5m
点数据,并在需要时发出警报,而不是回顾旧数据。换句话说,你不想被错误的警报所骚扰

要更正它,您需要为
窗口
节点指定
.period=5m
.every=5m
。这样做,你会发现滴答声会在10分钟内运行两次,每次运行包含最近5分钟的数据


让我知道这是否有帮助

你最初的问题不清楚。那么,我想说的是,您只想考虑每个窗口的<代码>峰值< /代码>数据吗?比如,我的报警阈值=5;在前5分钟的窗口中,我在最后1分钟有2个峰值。在下一个窗口中,我在前2分钟有4个峰值。如果我设置every=5,我将丢弃最后一分钟的2个峰值,以及相对5分钟的报警阈值(最后1分钟2+当前2分钟4,总共6)。这就是为什么我每2分钟给出一次。好的,我看到你的问题了。看起来您的数据是以30秒的间隔采样的。也许你的频率或
每个
都应该设置为30,这样你就不会错过任何东西。不利的一面是,你可能会收到垃圾邮件的警报,它不断点击
peak
。你认为这有用吗?我的目标是,我不会对一个扣球发出警报,但对于计数,在窗口中说5。是的。如果你有
every=30s
period=5m
你的5分钟窗口将以
30s
的间隔移动,这样你就不会错过任何东西。问题是,如果你发出
警报,接下来的30秒也是峰值。您基本上会收到两个警报,并且会一直发出警报,直到下一个示例为
非峰值
。这就是我说你会被垃圾邮件的原因
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')