#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. В нашем случае значения выбираются из переменной панели мониторинга (они меняются с момента выбора пользователя).