Kapactior TICKscript 中嵌套查询的解决方法

问题描述

据我所知,不可能在 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 (将#修改为@)