Приток переменных QL Целое число и вложение переменных Не работает

#time-series #grafana #influxdb #influxql

Вопрос:

Я пытался написать простой запрос FluxQL в панели мониторинга Grafana, который использует переменную m1(типа константа)(которая содержит имя измерения).

Я создал переменную m1 в панели мониторинга grafana переменные m1 = мое измерение

и попытался выполнить следующие запросы, но ни один из них не сработал, и они либо говорят об ошибке запроса выражения, либо об отсутствии данных), т. е.

 SELECT count("fails") FROM "/^${m1:raw}$/" SELECT count("fails") FROM "/^${m1}$/" SELECT count("fails") FROM $m1" (expression request error) SELECT count("fails") FROM "$m1" SELECT count("fails") FROM "${m1}"  

Единственный запрос работал без переменных панели мониторинга

 SELECT count("fails") FROM "my-measurement"  

Как я могу использовать переменные для работы с этим запросом.

На аналогичной основе я попытался создать пользовательскую переменную(myVar), для которой мы принимаем целочисленные входные значения от пользователя, и на этой основе должно работать предложение where, но возникает та же ошибка: либо нет данных, либо ошибка запроса выражения. То, что я пытался, было

 SELECT count(*) from "my-measurement-2" WHERE ("value" gt; $myVar)  

Как я должен решать эти проблемы?Пожалуйста, помогите

Ответ №1:

У вас могут возникнуть проблемы с

1.) синтаксис

 SELECT count("fails")  FROM "${m1:raw}"  

2.) данные

Вы можете исправить синтаксис запроса, но запрос может быть очень неэффективным. Выполнение запроса может потребовать много времени — поэтому лучше иметь фильтр времени, который будет использовать выбранный диапазон времени панели мониторинга (убедитесь, что у вас есть некоторые данные в этом диапазоне времени).

 SELECT count("fails")  FROM "${m1:raw}" WHERE $timeFilter  

3.) Конфигурация панели Grafana

Убедитесь, что вы используете подходящую панель — для запроса выше Stat панель является хорошим вариантом (этот запрос возвращает только одно значение, а не временные ряды, поэтому типы панелей временных рядов могут иметь проблемы с этим).

Как правило, используйте инспектор запросов, чтобы увидеть, как интерполируются переменные — может быть «магия», которая неочевидна, например, кавычки, которые добавляются вокруг числовых переменных, поэтому тогда это фильтрация строк, а не числовая фильтрация на уровне InfluxDB.