Перейти к основному содержимому
Руководство администратора
How To статьи
Установка и настройка
Компоненты
Руководство пользователя
Начало работы

Поиск ошибок в логах с использованием Grafana Loki

Основной инструмент, который используется для диагностики и исправления ошибок ESB в Grafana – это интерфейс Explore. Он предназначен для интерактивного исследования данных без привязки к дашбордам. В отличие от дашбордов, которые показывают готовые метрики, Explore даёт гибкую среду для:

  • написания и выполнения разовых запросов (ad hoc queries)
  • быстрой визуализации метрик
  • корреляции данных из разных источников
  • отладки проблем в стеке мониторинга
  • исследования аномалий без изменения дашбордов.

Ключевые возможности Explore

  • Редактор запросов
    • Для каждого источника данных есть свой редактор.
    • Интерфейс адаптируется под выбранный источник (Loki, Tempo, и т. д.).
  • Управление временным диапазоном
    • Выбор абсолютного или относительного диапазона времени.
    • Настройка пользовательских диапазонов.
  • Разделенное представление Split View
    • Позволяет сравнивать запросы рядом. Нажмите кнопку Split в правом верхнем углу.
    • Запускайте разные запросы в каждой панели.
    • Сравнивайте результаты по временным диапазонам или источникам данных.
    • Пользуйтесь представлением для корреляции метрик с логами.
  • Интеграция с источниками данных. Работает со всеми источниками Grafana. Особенно эффективен с:
    • Loki — исследование логов
    • Tempo — исследование трейсов
    • Prometheus — исследование метрик
    • Elastic — поиск документов и логов.
  • История запросов
    • Сохраняет историю выполненных запросов. Нажмите Query history в верхней панели. Найдите и выберите предыдущий запрос — он загрузится в редактор.
    • Инспектор запросов Query inspector показывает, как запрос обрабатывается.
  • Экспорт в дашборд.
    • Готовый запрос можно экспортировать в дашборд для постоянного мониторинга.
  • Ad-hoc фильтры
    • Добавляйте фильтры для уточнения запросов без изменения текста запроса. Нажмите Add query под редактором запросов. Выберите ключ, оператор и значение.

Вход в Explore

Вы можете войти интерфейс Explore одним из двух способов: из левой вертикальной панели инструментов Grafana, нажав на Explore, или же из панели дашборда, выбрав в контекстном меню Explore.

Preview

Вход в Explore из панели инструментов

Preview

Вход в Explore из дашборда

Просмотр логов ESB потока

Диагностика ошибок выполнения конкретного потока осуществляется посредством запроса с ID потока в качестве параметра, по которому выводятся детальные логи выполнения потока с информацией об ошибках в процессе выполнения.

  1. В интерфейсе Explorer, из выпадающего списка источников данных выберите Loki.

Примечание: Grafana Loki — это система агрегации логов из нескольких источников.

Preview

Выбор Loki в качестве источника данных

  1. В списке Label Filters выберите "service" и в Select value установите среду исполнения ESB Core.

Preview

Создание фильтра

Далее следует из интерфейса ESB взять ID потока и вставить его в критерий поиска Line contains.

ID потока в ESB – это часть URL адреса в редакторе потоков, идущая после «designer/» при выбранном потоке и не выбранных в нем компонентов. Например в адресе https://server_name /designer/7748a1f0-2b61-47bc-bb3c-99033d9c8b11 ID потока – это 7748a1f0-2b61-47bc-bb3c-99033d9c8b11. Если выбрать определенный блок потока в редакторе, то ID блока будет дописан в URL адрес после ID потока и разделителя ?componentId=.

Preview

Настройки фильтра

  1. Задайте для Logfmt значение "Strict".

После того как фильтр настроен, слева от кнопки Run Query выберите из списка диапазон времени, когда были собраны логи, требующие анализа.

Нажмите Run Query и на экране под фильтром отобразится информация о том, когда поток выполнялся. Если при выполнении потока возникали ошибки, их можно отследить на панели с логом.

Информацию по конкретной строке лога можно отобразить, кликнув по ней мышью в логе. Справа от всего лога отобразится вторая панель с информацией об отдельной записи.

Preview

Лог потока

Вы можете настраивать запросы в соответствии с вашими задачами, задавая параметры и временные диапазоны запроса.

Пример поиска и анализа ошибки выполнения потока

Рассмотрим пример того, как можно найти в логе запись об ошибке, содержащую текст "ERROR".

  1. Откройте интерфейс Explorer.

  2. Из выпадающего списка источников данных выберите Loki.

  3. В параметре Label filters задайте источник данных service, оператор = и значение Core.

  4. В поле Line contains введите текст ERROR.

  5. Добавьте в запрос Logfmt

    1. Нажмите + Operations
    2. Выберите Formats
    3. Выберите Logfmt
    4. Задайте значение "Strict".
  6. Добавьте в запрос Label filter expression

    1. Нажмите + Operations
    2. Выберите Label filters
    3. Выберите Label filter expression
    4. В поле Label введите route_id
    5. Operator =
    6. В интерфейсе ESB скопируйте из URL адреса ID потока и вставьте в значение критерия Value
  7. Выберите временной диапазон из списка слева от кнопки Run query

  8. Нажмите Run query.

Preview

Поиск записи об ошибке выполнения потока

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

В разделе Source видно, что ошибка была выброшена на втором блоке вследствие некорректного синтаксиса SQL (не указано имя таблицы) и, следовательно, чтобы исключить эту ошибку, необходимо откорректировать SQL выражение на блоке.

Preview

Запись лога с ошибкой