Техническое задание: Настройка мониторинга и логирования для Flask
Цель проекта
Модернизировать систему логирования и мониторинга ошибок в существующем Flask-приложении. Реализовать интеграцию с Sentry для эффективного отслеживания инцидентов и перевести логи в структурированный JSON-формат для последующего анализа.
Основные требования
1. Интеграция с Sentry
- Настроить отправку ошибок и исключений из приложения в Sentry.
- Обеспечить передачу понятных тегов, включая информацию о релизе (версия, окружение).
- Сохранять полную трассировку стека (stack trace) для каждой ошибки.
- Конфигурация должна быть гибкой для разных сред (разработка, тестирование, продакшен).
2. Структурированное JSON-логирование
- Перевести вывод логов приложения из текстового формата в структурированный JSON.
- Каждая запись лога должна содержать стандартные поля: timestamp, уровень логирования, сообщение, имя модуля.
- Реализовать автоматическую маскировку PII-данных (персонально идентифицируемой информации), таких как номера телефонов, email-адреса, в теле логов.
3. Документация и передача
- Подготовить краткую инструкцию по работе с новой системой логирования и мониторинга для команды разработки.
- Описать конфигурационные параметры и переменные окружения.
- Привести примеры типичных сценариев поиска и анализа ошибок в Sentry и лог-агрегаторе.
Критерии приемки
- Ошибки из приложения корректно отображаются в Sentry с указанными тегами и трейсами.
- Логи выводятся в stdout в формате JSON, готовом для сбора системами типа ELK Stack или Loki.
- PII-данные в логах заменены на placeholders (например, [REDACTED] или хеши).
- Код конфигурации хорошо документирован и передан заказчику.