问题描述
我正在将应用程序心跳之间的时间段记录到 Influxdb 中。 “目标”周期为 2000 毫秒。 如果周期超过2750ms,则定义为“滞后事件”。
我的最终目标是统计我们在没有滞后事件的情况下运行“多长时间”。
我从 Influxql 切换到 Flux,以便我可以使用 stateDuration() 方法。 使用以下方法,我可以收集增加的持续时间。在滞后事件中,state_duration 然后重置为 -1。
from (bucket: "sampledb/autogen")
|> range(start: -1h)
|> filter(fn: (r) =>
r._measurement == "timers" and
r._field == "HeartbeatMs" and
r.character == "Tarek"
)
|> stateDuration(fn: (r) =>
r._value<=2750,column: "state_duration",unit: 1s
)
|> keep(columns: ["_time","state_duration"])
此时,我希望能够为滞后事件之间的每个持续时间收集 'max(state_duration)',这就是我卡住的地方。尝试“按每个新的 stateDuration 序列分组”/“通过增加 stateDurations 分组”...
我在想可能可以使用“reduce()”或“map()”来注入一个我可以用来分组的序列号,每当我有 -1 时以某种方式增加该序列号state_duration。
下面是运行通量查询时“state_duration”的图表,我基本上是在尝试捕获每个峰值顶部的值。
感谢任何帮助,包括这样做,例如在 InfluxQL 中或使用连续查询。
导出到 csv 时数据如下所示:
"time","timers.HeartbeatMs","timers.character"
"2021-01-12T14:49:34.000+01:00","2717","Tarek"
"2021-01-12T14:49:36.000+01:00","1282","Tarek"
"2021-01-12T14:49:38.000+01:00","2015","Tarek"
"2021-01-12T14:49:40.000+01:00","1984","Tarek"
"2021-01-12T14:49:42.000+01:00","2140","Tarek"
"2021-01-12T14:49:44.000+01:00","1937","Tarek"
"2021-01-12T14:49:46.000+01:00","2405","Tarek"
"2021-01-12T14:49:48.000+01:00","2312","Tarek"
"2021-01-12T14:49:50.000+01:00","1453","Tarek"
"2021-01-12T14:49:52.000+01:00","1890","Tarek"
"2021-01-12T14:49:54.000+01:00","2077","Tarek"
"2021-01-12T14:49:56.000+01:00","2250","Tarek"
"2021-01-12T14:49:59.000+01:00","2360","Tarek"
"2021-01-12T14:50:00.000+01:00","Tarek"
"2021-01-12T14:50:02.000+01:00","1952","Tarek"
"2021-01-12T14:50:04.000+01:00","2108","Tarek"
"2021-01-12T14:50:06.000+01:00","2485","Tarek"
"2021-01-12T14:50:08.000+01:00","1437","Tarek"
"2021-01-12T14:50:10.000+01:00","2421","Tarek"
"2021-01-12T14:50:12.000+01:00","1483","Tarek"
"2021-01-12T14:50:14.000+01:00","2344","Tarek"
"2021-01-12T14:50:17.000+01:00","2437","Tarek"
"2021-01-12T14:50:18.000+01:00","1092","Tarek"
"2021-01-12T14:50:20.000+01:00","1969","Tarek"
"2021-01-12T14:50:22.000+01:00","2359","Tarek"
"2021-01-12T14:50:24.000+01:00","Tarek"
"2021-01-12T14:50:27.000+01:00","Tarek"
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)