Как создать столбец процент / отношение в Grafana / InfluxDB? - PullRequest
0 голосов
/ 04 июля 2018

У меня есть данные об ошибках, записанных в 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 Ответ

0 голосов
/ 05 июля 2018

Вот полезный ответ , но, к сожалению, он не решит вашу проблему.

В вашем примере:

| 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"
)

Этот предыдущий запрос явно не работает. Тогда что делать?

Извините, Вы ничего не можете сделать: /

Вот еще одна ссылка на документацию .

...