【问题标题】:Live sum(value) data visualization in Grafana using InfluxQL使用 InfluxQL 在 Grafana 中进行实时总和(值)数据可视化
【发布时间】:2023-11-29 01:38:01
【问题描述】:

我有一个表,其中有许多行遵循这种结构:

time                acknowledgement crit current_attempt downtime_depth execution_time hostname latency max_check_attempts metric reachable service state state_type value warn
----                --------------- ---- --------------- -------------- -------------- -------- ------- ------------------ ------ --------- ------- ----- ---------- ----- ----
1507171563000000000                 999                                                a01-pdu                             kw               pdu                      14.94 999
1507171621000000000                 999                                                a01-pdu                             kw               pdu                      14.92 999
1507171678000000000                 999                                                a01-pdu                             kw               pdu                      14.45 999
1507171736000000000                 999                                                a01-pdu                             kw               pdu                      14.93 999
1507171793000000000                 999                                                a01-pdu                             kw               pdu                      14.88 999
1507171852000000000                 999                                                a01-pdu                             kw               pdu                      14.92 999
1507171909000000000                 999                                                a01-pdu                             kw               pdu                      14.9  999
1507171995000000000                 999                                                a01-pdu                             kw               pdu                      14.91 999
1507171999000000000                 999                                                a02-pdu                             kw               pdu                      13.41 999

我的目标是获得hostname =~ /a01-pdu|a02-pdu/ 的最后一个条目并总结他们的value

例如,如果我运行:

SELECT last(value) AS last INTO pdu_abcd12 FROM pdu WHERE hostname =~ /a01-pdu/;
SELECT last(value) AS last INTO pdu_abcd12 FROM pdu WHERE hostname =~ /a02-pdu/;

SELECT sum(last) FROM (SELECT * FROM pdu_abcd12 ORDER BY DESC LIMIT 8)

time sum
---- ---
0    105.97

我能够得到这两个值的总和,但这需要我每次想查看数据时都运行上面的 influxQL 命令。有没有办法让命令定期运行,以便我可以在 Grafana 中可视化实时数据?

【问题讨论】:

    标签: influxdb grafana


    【解决方案1】:

    创建continuous queries,例如:

    CREATE CONTINUOUS QUERY last_sum ON <db name>
    BEGIN
      SELECT last(value) AS last INTO pdu_abcd12 
      FROM pdu 
      WHERE hostname =~ /a01-pdu/ 
      GROUP BY time(1h), hostname
    END
    

    请注意,CQ 需要 group by。主机名也包含在上面的 group by 中,以说明正则表达式匹配的多个主机名。否则它们的值将被一起选择。

    但是,CQ 有几个缺点,例如它们是周期性的,这意味着它们仅在组内按间隔运行一次,它们不会包含间隔之间的中间数据,如果 DB 出现故障,则不会运行导致间隔数据,将在使用通配符聚合等时生成唯一字段,请参阅文档。

    另一个选项是Kapacitor,它更灵活,但也更复杂,流处理语法。

    【讨论】:

      最近更新 更多