【问题标题】:InfluxDB Query to fetch count of distinct values for GrafanaInfluxDB 查询以获取 Grafana 的不同值的计数
【发布时间】:2018-04-11 14:30:01
【问题描述】:

我有一个收集器,它从日志文件中收集三个字段并以下列格式保存到 influxDB:

FeildA   FeildB   FeildC
-------     --------    --------
A            00          123
B            02               00           00          13
A            00       123

我想在Grafana 中绘制图表,以便获得“A”和“B”(FeildA)的出现计数
IMP:FeildA 可以有多个值,未知预先。因此,不能选择使用“where”子句编写查询。

【问题讨论】:

    标签: monitoring influxdb grafana


    【解决方案1】:

    如果FeildA 在测量模式中仅定义为field,您可以在“where”子句中使用正则表达式,这些查询可能对您有用:

    ```

    SELECT COUNT(FeildA) FROM "logdata" WHERE $timeFilter and FeildA::field =~ /^A$/
    SELECT COUNT(FeildA) FROM "logdata" WHERE $timeFilter and FeildA::field =~ /^A$/
    SELECT COUNT(FeildA) FROM "logdata" WHERE $timeFilter and FeildA =~ /^(A|B)$/
    

    ```

    如果FeildA(基数)的预期不同值的数量是合理的,那么真正的解决方案是使FeildA 成为“标签”而不是“字段”。然后您可以在查询中使用“按标签分组”。例如查询:

    ```

    SELECT COUNT(FeildA) FROM "logdata" WHERE $timeFilter AND "FeildA" =~ /^(A|B|C|D)$/ GROUP BY time(1m), FeildA fill(null)
    

    ```

    将给出“A”、“B”、“C”、“D”的出现次数。但这需要改变收集器。 FeildA 在 influxdb 中既可以是“标签”也可以是“字段”,但名称不同时更好,以避免冲突并简化查询中的语法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-06
      • 2019-04-30
      • 2022-10-08
      • 2020-05-13
      • 1970-01-01
      • 2022-01-16
      • 2020-02-20
      • 2020-07-13
      相关资源
      最近更新 更多