如何在 Grafana/InfluxDB 中创建百分比/比率列?
Posted
技术标签:
【中文标题】如何在 Grafana/InfluxDB 中创建百分比/比率列?【英文标题】:How to create a percentage / ratio column in 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
字段正常工作?
【问题讨论】:
【参考方案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。
【讨论】:
? 你成就了我的一天以上是关于如何在 Grafana/InfluxDB 中创建百分比/比率列?的主要内容,如果未能解决你的问题,请参考以下文章
搭建Jmeter + Grafana + InfluxDB性能测试监控环境
InfluxDB 和 Grafana:InfluxDB 错误:错误请求 |码头工人