问题描述
据我所知,不可能在 Kapacitor TickScript 中执行嵌套查询,所以我正在寻找其他方法来实现与 InfluxQL 查询相同的结果:
select count(*) from (SELECT sum("value") FROM "measurement"."autogen"."consumption" WHERE (time > now() -5d -1h AND time <= now() - 5d) GROUP BY time(60m,1ms),"param1","param2","param3")
该查询的结果是具有一个值的单个点,其中包含来自嵌套查询的总行数,例如 50。
我在 tickscript 中写了类似的东西:
var cron = '0 59 * * * * *'
var size_1 = batch
|query('''
SELECT sum(value) FROM "measurement"."autogen"."consumption"
''')
.period(1h)
.offset(5d - 1m - 1ms)
.groupBy(time(60m,'param1','param2','param3')
.fill(1)
.cron(cron)
|count('sum')
|log()
size_1
|alert()
.kafka()
.kafkaTopic('influx')
但是我在输出中没有得到单个值,而不是我有多个点仍然按查询中的 3 个参数('param1'、'param2'、'param3')分组,并且它们只被计算为非-唯一的参数集,kapacitor log() 的片段:
2021-04-21T03:51:00.220+02:00
Kapacitor Point
3 Tags
param1: 2.8.0
param2: 0015474_7
param3: SUPPLEMENTARY
1 Fields
count: 2
2021-04-21T03:51:00.221+02:00
Kapacitor Point
3 Tags
param1: 2.8.0
param2: PW0001_1
param3: SUPPLEMENTARY
1 Fields
count: 2
etc.
如何像 influxQL 查询一样在 kapacitor tickscript 中使用单个 count() 结果获得相同的输出?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)