Почему запросы Grafana ElasticSearch работают, когда жестко запрограммированы, но не работают при использовании подстановки значений переменной Grafana? а как исправить?

Изображение проблемы

Запрос ElasticSearch работает при жестком кодировании, но не работает при подстановке значений переменной Grafana:

Запрос: + nginx.access.upstream.response: [*, 1 **, 2 **, 3 **, 4 **, 5 **, 500]
Каждый из этих запросов работает, когда вы жестко кодируете эти значения. в запросе.

Example Query: +nginx.access.upstream.response: 1** 
               ^That works shows a table of data instead of "No data to show"

Хотя это работает, лучше использовать переменную с 7 значениями, позволяющую использовать 1 панель для отображения тех же данных, которые могут быть помещены в 7 жестко запрограммированных панелей, так что вы получите более чистый пользовательский интерфейс.

Проблема в том, что теперь вы переключили жестко запрограммированные значения на значения, заполненные переменными, запрос больше не работает.
Подключенные значения переменных [* и 500] работают
Подключенные значения переменных [1 **, 2 **, 3 **, 4 **, 5 **] не работают / приводят к «Нет данных для отображения», как показано выше.

Когда значения подставляются в запрос, происходит что-то забавное.
Q1.) Какой лучший инструмент / метод для отладки истинного значения переменной после подстановки / выяснить, почему это не удается?
Q2.) Какой метод исправить / достичь желаемого конечного результата?


person neokyle    schedule 25.07.2019    source источник


Ответы (1)


Q1.) Какой лучший инструмент / метод для отладки истинного значения переменной после подстановки / выяснить, почему это не удается?

Ответ 1: инспектор запросов
1 ** - при замене становится -> 1 \\ * \\ *
, что объясняет, почему это не сработало.

A1.) Инспектор запросов

Q2.) Как можно исправить это / достичь желаемого конечного результата?

Ответ 2. У меня сработало то, что я избегал использования специального символа * в значениях переменных.
Я переименовал переменную в префикс кода HTTP и использовал значения [*, 1,2,3 , 4,5]
Затем я использовал запрос: + nginx.access.upstream.response: $ http_code_prefix *

person neokyle    schedule 25.07.2019
comment
Это предназначено для обмена знаниями, вопросов и ответов, но, пожалуйста, дайте мне знать, есть ли лучшее решение, чтобы избежать экранирования значения переменной при замене. - person neokyle; 25.07.2019