【问题标题】:How to create a percentage / ratio column in Grafana / InfluxDB?如何在 Grafana/InfluxDB 中创建百分比/比率列?
【发布时间】:2018-12-13 03:43:21
【问题描述】:

我有关于写入 InfluxDB 的错误数据(示例已简化)。

 time   | error   | some_unique_data
--------|---------|--------------------
 <time> | hello 1 | some unique data...
 <time> | hello 2 | some unique data...
 <time> | hello 2 | some unique data...
 <time> | hello 3 | some unique data...

我可以编写以下查询来查看 Grafana 中最常见错误的排序列表:

SELECT COUNT("some_unique_data") FROM "my_measument" WHERE $timeFilter GROUP BY error

给出:

| error   | count
|---------|-------
| hello 2 | 2
| hello 1 | 1
| hello 3 | 1

我缺少的是可以向我展示每个错误的影响的列,如下所示:

| error   | count | impact
|---------|----------------
| hello 2 | 2     | 50%
| hello 1 | 1     | 25%
| hello 3 | 1     | 25%

我应该在我的查询中添加什么才能让这个 impact 字段正常工作?

【问题讨论】:

    标签: influxdb grafana


    【解决方案1】:

    这是一个有用的answer,但不幸的是它不能解决你的问题。

    在你的例子中:

    | error   | count
    |---------|-------
    | hello 2 | 2
    | hello 1 | 1
    | hello 3 | 1
    

    您已使用 GROUP BY "error" 获取每个 error 的计数,因此一旦您这样做了,您将无法再访问完整计数,因此您必须在 GROUP BY 之前进行。

    不能这样做:

    SELECT COUNT(*) AS full_count, "some_unique_data" FROM "my_measument" WHERE $timeFilter
    

    为了获得完整的记录数,因为您不能使用SELECT COUNT(), "field_name" FROM ...

    因此,在执行 GROUP BY 之前获得完整计数是不可能的。

    好吧,让我们试试别的:

    SELECT "fields_count" / SUM("fields_count") AS not_able_to_use_SUM_with_field , "error" FROM ( 
        SELECT COUNT("some_unique_data") AS fields_count AS fields_sum FROM "my_measument" WHERE $timeFilter GROUP BY "error"
    )
    

    前面的查询显然不起作用。那该怎么办呢?

    对不起,你无能为力:/

    这是另一个link to the documentation

    【讨论】:

    • ? 你成就了我的一天
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    • 2020-11-10
    相关资源
    最近更新 更多