如何解决如何创建Influxdb警报以偏离平均小时值?
因此,我试图查找有关更复杂的Flux查询的任何文档,但是经过几天的搜索,我仍然迷失了方向。我希望能够计算一周中每个小时的平均值,然后在收到新数据时要检查该小时是否偏离x标准偏差。
基本上,我希望有24x7的数组字段,每个字段表示过去一年中一周中每小时的平均值/中位数。然后,我想将每小时的最后几天值与这些平均值进行比较,并报告一个错误。我不明白如何计算这些平均值。在Flux上有一些隐藏的详尽文档吗?
我真的不需要一个完整的解决方案,只是某个方向会很好。就像,在标准库或任何其他程序中是否有一些实用程序功能
编辑:经过一番阅读,看起来我需要做的只是使用window和AggregationWindow函数,但我还没有找到确切的方法
解决方法
好的,这就是对我有用的方法。需要进行清理,但成功将每小时+工作日的值以及所有值的平均值进行分组
import "date"
tab1 = from(bucket: "qweqwe")
|> range(start: v.timeRangeStart,stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "asdasd")
|> filter(fn: (r) => r["_field"] == "reach")
|> aggregateWindow(every: 1h,fn: mean,createEmpty: false)
mapped = tab1
|> map(fn: (r) => ({ r with wd: string(v: date.weekDay(t: r._time)),h: string(v: date.hour(t: r._time)) }))
|> map(fn: (r) => ({ r with mapped_time: r.wd + " " + r.h }))
grouped = mapped
|> group(columns: ["mapped_time"],mode: "by")
|> mean()
|> group()
|> toInt()
|> yield()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。