Запрос Grafana Loki с интерполяцией регулярных выражений для переменной с множественным выбором

#variables #grafana #grafana-loki

#переменные #grafana #grafana-loki

Вопрос:

В настройках панелей мониторинга Grafana я создал переменную $logfile на основе запроса (label_values(filename) от Loki), чтобы иметь возможность выбирать несколько имен файлов. Эти имена файлов иногда содержат точки (дополнительные расширения).

В запросе панели журналов я пытаюсь интерполировать значения, выбранные в выражении регулярных выражений:

 {filename=~".*\/${logfile:regex}\.log"}
  

Интерполяция регулярных выражений, описанная ниже, указывает, что специальные символы экранируются один раз с помощью этой записи:
https://grafana.com/docs/grafana/latest/variables/advanced-variable-format-options /

Но для части регулярных выражений запроса select требуется корректное экранирование двойной обратной косой черты (поэтому, когда я выбираю такие параметры, как «file1» или «file2», это работает, но с «file3.ext» или «file4.ext», это не сработает).

Как этого добиться?

Спасибо,

Ответ №1:

Я получил помощь от другого разработчика, который понял это.

Ключ в том, чтобы использовать обратные кавычки:

 {filename=~`.*/${logfile:regex}.log`}
  

Тогда это работает!

Надеюсь, это будет полезно для всех, кто ищет

Комментарии:

1. примечание для всех, кто еще читает это: регулярное выражение является полным совпадением, а не частичным, поэтому {filename=~`prefix-.*`} будет работать там, где {filename=~`prefix-`} не будет

Ответ №2:

Я использую следующее для поиска нескольких значений в Loki.

 |~ "(string1|string2)"
  

или

 {namespace="name", container="service"} |~ "(string1|string2)"
  

Комментарии:

1. Спасибо, это может сработать, если известны значения string1 и string2. В нашем случае значения выбираются из переменной панели мониторинга (они меняются с момента выбора пользователя).