Держим руку на пульсе проекта. Мониторинг PHP-приложений
1. Держим руку на
пульсе проекта
МОНИТОРИНГ PHP-ПРИЛОЖЕНИЙ
MINSK PHP USER GROUP MEETUP #7
2. Дисклеймер
1. Мало текста
2. Еще меньше картинок.
o Авторов не нашел
o Копирайтов не проставил
o Стыдно
3. Шутки. Много, тупых и не к месту
4. 43 слайда
2
6. Еще один важный вопрос
А нотифицирует?
А агрегирует?
А спим спокойно?
6
7. Зачем это вообще нужно?
Чтобы спать спокойно
Чтобы не говорить «с нашей
стороны ракеты вылетели»
Чтобы никому не ломать пальцы
И самому не попадать в
травматологию
7
8. А серьезно?
Узнавать о проблемах раньше,
чем клиенты
Статистика
Автоматизация
(масштабируемость, высокая
доступность)
8
10. Что мерять. Big picture
1. Сервер (клауд? сюрприз!)
2. Сервисы (компоненты)
3. Приложение (бэкэнд)
4. Приложение (фронтэнд)
кто это делает?
10
11. Меряем сервер
1. CPU (LA, user/system/idle…)
2. Memory (free/used, swap)
3. IO (tps, await)
4. Disk (read/write speed, free/used
space, # of inodes)
5. Network (outgoing/ingoing traffic)
11
12. Меряем сервисы. Выбор
редакции в номинации “LAMP”
1. “L”: пропустим
2. “A”: nginx
(http_stub_status_module)
3. “M”: Visual FoxPro MySQL
4. “P”: php-fpm. без шуток.
12
13. Приложение. Ну наконец-то!
1. Время обработки
запроса/консоли
2. Потребляемая память
3. Страничка isAlive
4. Кастомные
метрики/бенчмарки
13
37. Чем?
1. Rsyslog
2. syslog-ng
◦ Multiline (MySQL slow query log)
◦ Костыли для PHP (tip: роутим
на destination, в котором
переставляем priority если
program PHP)
37