Задать вопрос
@personFromInternet

Grafana. Как создать переменную в дашборде из логов?

У меня в Grafana приходят следующие логи:
2026-08-28 00:10:05.987 info 2026-08-28 00:10:05 | INFO | Title generation completed.
2026-08-28 00:10:05.987 info
2026-08-28 00:10:05 | INFO | No themes with title shortage found.
2026-08-28 00:10:05.987 debug
2026-08-28 00:10:05 | DEBUG | Received shortage report for 3 themes
2026-08-28 00:10:05.886 info
2026-08-28 00:10:05 | INFO | Checking themes for title shortage


Мне интересно получить значение количества тем в следующей строке: "Received shortage report for 3 themes ".

Тип переменной я выбираю Query и имею следующий интерфейс, как на скриншоте ниже:
Интерфейс настройки переменной дашборда
f774c83bd4cdf637c31b5725a82dd8e0.png


Использовал следующий regex-query:
{service_name="loki.source.journal.title_gen_stage_1"}
|= "Received shortage report"
| regexp "Received shortage report for (?P[0-9]+) themes"
| line_format "{{.themes}}"


Но всеравно не работает. Пробовал по разному и не совсем уверен, что это вообще возможно, чтобы создать переменную из значения полученного в логах. Версия Grafana "13.2.0".

Прошу поделиться примером с скриншотом интерфейса, как правильно получить какое-либо значение из логов.
  • Вопрос задан
  • 189 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • ProductStar × РБК
    Профессия: Java-разработчик + ИИ
    9 месяцев
    Далее
  • Хекслет
    Java-разработчик
    10 месяцев
    Далее
  • Stepik
    Поколение Python: курс для профессионалов
    2 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
дело не в regex, а в том что themes после | regexp — это extracted field, а не настоящий label Loki. Variable query вообще не гоняет log pipeline, она смотрит только на индексированные labels, поэтому там всегда пусто.

Просто циферку на дашборд — забудь про переменную, возьми Stat panel с instant-запросом
last_over_time({...} | regexp ... | unwrap themes [$__range])
, сработает штатно.

А если правда нужна переменная $themes — themes придётся выносить в реальный label на этапе сборки (stage.labels в Alloy/Promtail). Но label с постоянно меняющимся числом убьёт cardinality — для такого счётчика честнее отдельная метрика в Prometheus.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы