Skip to content

[Meta] Описание стратегии внедрения Observability Stack (Next.js + Faro + OpenTelemetry) #36

Closed
2 of 2 issues completed

Description

@soorq

Контекст

Данная мета-задача описывает концептуальный подход и архитектурную связку инструментов для мониторинга приложения. Мы переходим от разрозненного логирования к единому стандарту Observability, объединяющему Frontend (Grafana Faro) и Backend/Infrastructure (OpenTelemetry). Это необходимо для обеспечения "Single Source of Truth" при анализе инцидентов и производительности системы.


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

  • Локация логики: Общесистемная архитектурная документация, репозитории инфраструктурных конфигураций.
  • Инструменты: Grafana Cloud/OSS, OpenTelemetry Protocol (OTLP), Grafana Faro, Grafana Alloy (Collector).
  • Логика работы:
    1. Frontend (Faro): Захватывает события браузера (RUM), ошибки JS и Web Vitals, отправляя их в формате OTLP.
    2. Trace Propagation: Связывание фронтенд-сессий с бэкенд-трассами через заголовки traceparent (W3C Standard).

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

  • База: Определены стандарты именования сервисов (service.name) и аттрибутов ресурсов для всех слоев системы.
  • Функционал: Согласована схема прохождения данных: Client -> Faro Collector -> Grafana Mimir/Tempo/Loki.
  • Лимиты/SLA: Установлены политики хранения (retention) и квоты на объем телеметрии для оптимизации затрат на хранение.
  • Интеграция: Подготовлена общая схема взаимодействия компонентов в README.md корневого репозитория.

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

  • Производительность: Использование единого коллектора (Alloy/OTEL Collector) для агрегации данных перед отправкой в хранилище.
  • Ошибки: Унификация кодов ошибок между фронтендом и бэкендом для корректной фильтрации в дашбордах.
  • Безопасность: Внедрение централизованной политики фильтрации PII (Personally Identifiable Information) на уровне коллектора.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions