2. Мы на новом месте
Зарегистрировались 150 человек ровно
Наш второй митап в ШАГе
3. План митапов
1. Software Craftsmanship & Agile.
Как не делать говно?
2. Принципы хранения данных
3. Обзор баз данных
4. Очереди сообщений
5. Кэши и файловые хранилища
4. План митапов
6. Как Software Craftsmanship фиксит проблемы Agile
7. БД: проектирование, масштабирование,
шардирование, реплицирование…
8. Процессы и инструменты для CI/CD
9. Логирование и мониторинг
10. Распределенные транзакции
5. Что интересует вас
Репортинг – процессы
Недостаток логгирования
Поиск логов
Агрегирование логов
Как и что логировать
Доступ к логам для QA/BA
Мониторинг ошибок
Что мониторить
Нет автоанализа логов
Малоинформативные логи
Выбор инструмента для
логов
Живучесть
6. Что интересует вас
Шаринг дашбордов
мониторинга
Отлов новых ошибок
Отделить важное от
неважного
Быстрая реакция на
проблемы
Сколько логировать
Логирование когда много
сервисов
Мало логов
Профайлинг логирования
Просмотр и визуализация
логов
7. План этого митапа
1. Что такое логирование, мониторинг,
оповещения
2. Схема построения
3. Инструменты мониторинга
4. Best practices логирования
8. Мониторинг
Мониторинг – процесс узнавания о системе
Активный – смотреть графики
Пассивный – получать оповещения
Многозначное понятие
Может исключать участие человека
14. Как настроить
Настроить сбор и отображение и подождать 2-3
недели
Понять baseline для неочевидных метрик
Настроить оповещения
Когда некритично превышен baseline
Настроить алармы
Когда критично превышен baseline
15. Какие метрики основные
Понять какая иерархия компонентов в системе
Понять какие метрики нужны каждому
компоненту и подкомпоненту
Мониторинг не должен играть роль юнит-тестов
16. Как поддерживать
Добавлять новые метрики при появлении
компонентов, серверов, SLA
Добавлять новые метрики когда понял какие
аспекты важны
Обновлять существующие алерты и алармы с
ростом системы
17. Как поддерживать
Удалять устаревшие метрики
В случае непредвиденной проблемы
Исправить ее
Провести анализ причин и почему не смогли
предвидеть
Добавить нужные метрики и алерты
18. Как поддерживать
На графики нужно смотреть
На алерты нужно реагировать
Удобный мониторинг позволяет понять одним
взглядом состояние системы или любого
компонента
19. Как поддерживать
Процесс работы с мониторингом
Кто смотрит
Когда смотрит
Кто и что делает в случае алертов или алармов
Планирование времени
24. Выбор инструмента
Есть API
Cloud, SaaS/у себя
Простота деплоя,
настройки, поддержки
Средства
визуализации
Архитектура, scaling
Agent/agentless
Безопасность
Стоимость
Тех. поддержка
26. Логирование
Часть процесса разработки, отладки,
тестирования, поддержания работы
Логи содержат информацию об изменении
состояния системы
Помогают разбирать ошибки
27. Проблемы логирования
Количество и хранение логов
Подробность логов
Производительность
Централизация логов
Поиск в логах
Безопасность и privacy
29. Best practices
Вынесите уровень логирования во внешний файл
По умолчанию используйте INFO
Используйте FATAL и Critical/Error
Warning – может случиться ошибка
Info – все ок, хочу убедиться что все ок
30. Best practices
Используйте разные уровни на разные
окружениях
Иногда можно включить debug на небольшое
время в prod
Просматривать переменные можно с помощью
Trace
Не добавляйте в лог пароли и GDPR
31. Best practices
Не замеряйте короткие методы с помощью логов
Можно логировать в бд или в поисковик
Используйте ротацию логов (2 недели)
В prod – логи должны уходить по сети
Используйте industry standard библиотеки для
логирования, не пишите свое
32. Best practices
Пишите логи, чтобы их понял любой, даже вы
сами через 3 месяца
Добавляйте в логи контекст (компонент, этап
обработки…)
Пишите в machine parseable фармате
Для очередей используйте uuid сообщений для
отслеживания в producer/consumer
33. Best practices
Логируйте не только для выявления проблем, но и
для аудита/мониторинга
Используйте разные файлы для логов разного
уровня
Мониторьте количество сообщений в логах
разного уровня
Выводите частоту ошибок на график