Skip to content

[DevOps/Frontend] Интеграция клиентского логирования в Grafana Loki #38

Closed

Description

@soorq

Контекст

Текущая система сбора логов ограничена серверной стороной. Для получения полной картины происходящего необходимо настроить стриминг клиентских логов (консольные ошибки, предупреждения, информационные сообщения сессии) напрямую в Grafana Loki через Grafana Faro. Это позволит коррелировать логи фронтенда с серверными логами по trace_id и session_id.


Технические требования

  • Локация логики: Конфигурация SDK в telemetry/faro-init.ts.
  • Инструменты: @grafana/faro-web-sdk, Grafana Loki, Grafana Alloy (как прокси-коллектор).
  • Логика работы:
    1. Инструментация консоли: Активация ConsoleInstrumentation для автоматического перехвата console.error, console.warn и console.info.
    2. Уровни логирования: Настройка маппинга уровней (loglevel) из браузера в соответствующие лейблы Loki.
    3. Метаданные: Обогащение каждой записи лога контекстом: URL страницы, версия приложения и ID пользователя.

Цель и критерии приемки (Definition of Done)

  • База: Включен плагин ConsoleInstrumentation в конфигурации Faro SDK.
  • Функционал: Логи из браузера появляются в Grafana Explore при фильтрации по source="faro".
  • Лимиты/SLA: Установлен лимит на объем передаваемых логов, чтобы избежать "заспамливания" хранилища циклическими ошибками.
  • Интеграция: Настроены derived fields в Grafana для быстрого перехода из лога Loki к соответствующему трейсу в Tempo.

Важные указания

  • Производительность: Исключить логирование в режиме development, чтобы не дублировать данные при локальной разработке.
  • Ошибки: Предусмотреть фильтрацию "шумных" ошибок от сторонних расширений браузера (например, LastPass, AdBlock), которые не относятся к коду приложения.
  • Безопасность: Стриминг логов должен проходить через бэкенд-прокси или Grafana Alloy с проверкой API Key для защиты эндпоинта Loki.

Прикладные примеры и документация

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions