我想在评估检查之前的 3 小时内特定类型事件的计数小于 5 时发出警报,但我需要每 15 分钟进行一次检查。
由于我需要比我测量的时间跨度更频繁地检查,因此我无法根据我的原始数据执行此操作(根据文档,“[时间表] 间隔与检查查询的聚合函数间隔匹配” . 但我想我可以使用“任务”将我的数据转换成可以工作的形式。
我能够通过通量查询以我希望的方式聚合数据,甚至将生成的滚动计数保存到仪表板。
from(bucket: "myBucket")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) =>
(r._measurement == "measurementA"))
|> filter(fn: (r) =>
(r._field == "booleanAttributeX"))
|> window(
every: 15m,
period: 3h,
timeColumn: "_time",
startColumn: "_start",
stopColumn: "_stop",
createEmpty: true,
)
|> count()
|> yield(name: "count")
|> to(bucket: "myBucket", org: "myOrg")
结果如下散点图。
我希望我可以将其复制粘贴为一项新任务,并获得我漂亮的新聚合数据集。在解决了几个清晰的语法错误之后,我确定了以下任务定义:
option v = {timeRangeStart: -12h, timeRangeStop: now()}
option task = {name: "blech", every: 15m}
from(bucket: "myBucket")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) =>
(r._measurement == "measurementA"))
|> filter(fn: (r) =>
(r._field == "booleanAttributeX"))
|> window(
every: 15m,
period: 3h,
timeColumn: "_time",
startColumn: "_start",
stopColumn: "_stop",
createEmpty: true,
)
|> count()
|> yield(name: "count")
|> to(bucket: "myBucket", org: "myOrg")
不幸的是,我遇到了一个在任何地方都找不到的错误:could not execute task run; Err: no time column detected: no time column detected
.
如果您能帮助我调试此任务运行错误,或通过以其他方式完成此任务来回避它,我将非常感激。