Существует полезный и нужный инструмент для мониторинга PHP под названием pinba. Он позволяет собирать статистику по выполнению PHP-скриптов вашего проекта. Мы реализовали небольшую систему, которая дополняет Pinba, и назвали ее Pinboard (Pinba board).
Суть работы
Pinba хранит исключительно realtime-данные за последние несколько минут, что очень круто, но не всегда удобно. Pinboard же периодически агрегирует эти данные в собственное хранилище и предоставляет простые средства просмотра и анализа этой информации, а в ближайшем будущем и средства простейшего мониторинга.
Возможности
Обзор выполнения PHP-скриптов
Для каждого хоста, к которому подключена pinba, можно посмотреть графики:
- времени выполнения скриптов;
- используемой памяти;
- количества запросов в секунду;
- и количества запросов с 5хх статусами.
При этом графики времени выполнения и используемой памяти строятся по перцентилям в виде 4-х кривых. Например, для времени выполнения это:
- максимальное время выполнения 90% «самых быстрых» запросов
- максимальное время выполнения 95% «самых быстрых» запросов
- максимальное время выполнения 99% «самых быстрых» запросов
- максимальное время всех запросов
Данные можно смотреть как для всего сайта, так и для отдельных серверов в случае, если сайт обслуживается несколькими серверами.
Мониторинг самых медленных и самых «тяжелых» скриптов
В Pinboard можно задать максимально допустимые значения времени выполнения скриптов и используемой ими памяти. Все скрипты, которые не уложились в заданные пределы, фиксируются в Pinboard и доступны в отдельном разделе для просмотра. Можно задать как общие значения, так индивидуальные для отдельно взятых сайтов. Все настройки задаются в yml.
Также, как и в случае обзорной информации, отчеты можно смотреть как для всего сайта, так и для отдельно взятого сервера, обслуживающего сайт.
Мониторинг запросов с ошибками
Pinboard отслеживает и фиксирует в отдельном разделе скрипты, которые вернули 5хх статус. В ближайшее время мы добавим возможность уведомления на почту о таких скриптах.
Live-режим
В системе предусмотрен отдельный раздел, в котором Pinboard отображает realtime-данные из таблиц pinba. Можно видеть, кто и что в данный момент просматривает на сайте. По каждому запросу выводится информация по времени выполнения и использованной памяти.
В качестве итога
У себя мы подключили к Pinboard значительную часть проектов, которые разрабатываем и поддерживаем. На данный момент наш Pinboard фиксирует порядка 2 млн. запросов в сутки. Период хранения мы установили в месяц. За это время набирается порядка 2 Гб данных.
В ближайшем будущем мы хотим добавить 2 важные фичи:
- уведомление на почту о страницах с ошибками;
- поддержка тегов pinba
В целом мы будем рады пожеланиям, замечаниям и помощи в развитии системы. Проект опубликован по MIT лицензии.
Ссылки
Сайт проекта: http://intaro.github.io/pinboard/
Github: https://github.com/intaro/pinboard
Документация: https://github.com/intaro/pinboard/wiki
Автор: muxx