使用 InfluxDb

问题描述

我正在将应用程序心跳之间的时间段记录到 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”的图表,我基本上是在尝试捕获每个峰值顶部的值。

enter image description here

感谢任何帮助,包括这样做,例如在 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...