Сегодняшнее занятие из курса “Otus php professional“ посвящено вопросам профилирования, логирования и мониторинга веб-приложений; задача — рассмотреть, как можно анализировать работу приложений, строить системы наблюдения за приложениями и серверами. Как результат, научиться настраивать процесс логирования в приложении и уметь собирать необходимую информацию.
/**/
О занятии
Цели занятия
-
анализировать работу приложения;
-
строить системы наблюдения за приложениями и серверами.
Краткое содержание
-
«скрипт тормозит? научимся находить узкие места, используя инструменты профилирования.»
-
логирование, чтобы понимать, что делает наш скрипт;
-
уровни логирования (по PSR-3), библиотека Monolog и сбор логов в ELK.
Ожидаемые результаты
-
настраивать процесс логирования в приложении и уметь собирать необходимую информацию.
Преподаватель
-
Дмитрий Панкрашов
-
Дата: 12.05.2022
Тезисы из вебинара
Профилирование
Популярные профилировщики:
-
XDebug: https://xdebug.org/
-
BlackFire : https://www.blackfire.io/
-
ClockWork: https://underground.works/clockwork/
Профилировщик XDebug
Генерирует файлы *.xdebug , которые можно читать в IDE
Профилировщик XHprof
Ставится через PECL
Генерирует файлы *.xhprof , которые можно читать в браузере:
Профилировщик BlackFire (платный)
Сайт: https://www.blackfire.io/
Пример/ демо: https://demo.blackfire.io/
Профилировщик ClockWork
Сайт: https://underground.works/clockwork/
Профилировщики прочие
у каждого фреймворка есть свой
Практики профилирования
Плохие практики / worst practice
Хорошие практики / Best practices
Логирование
Зачем делать логирование?
Что писать в лог?
Куда писать в лог?
Инструменты логирования:
Еще советовали по логированию:
Кейс юзера:
Крутой кейс был писали в базу в платежном сервисе и пользователю вместе с ошибкой отправлять id лога, потом по скрину в 2 клика находили ошибку
Уровни логирования (типы нотификаций)
Советы по логированию
Мониторинг
Пример проблемы
Варианты ответов: (в чем причина?)
Правильный ответ (4) — стащили: отдали другим пользователям:
Зачем нужен мониторинг
Сервисы мониторинга
Из них “Prometeus” — самый мощный, Zabbix удобен тем что можно карту сети нарисовать
Архитектура Prometeus
Grafana — инструмент для визуализации метрик
Параметры мониторинга
Примеры:
-
SLI — время загрузки страницы (измеряемое реально)
-
SLA — декларируемое в контракте время загрузки
-
SLO — целевой уровень времени загрузки страницы (не критичный, как SLA)
Что можно мониторить
Итоги вебинара
Мой отзыв о занятии
Нет практики , а она бы тут не помешала (elk, grafana и т.п.);
Короткое занятие, за 75 мин прошли, можно было поподробнее еще 15 мин что-то рассмотреть;
Доп. материалы
-
Профилирование в PHP XDebug, XHprof, Blackfire Дмитрий Науменко : https://slides.silverfire.me/2016/devpizza-profiling/#/ — хорошая презентация
-
Подкаст — Обзор и первые впечатления от сервиса профилирования PHP кода Blackfire.io https://5minphp.ru/episode22/
Нет комментариев