Про pinba и pinboard для мониторинга PHP

pinba_sqВот есть у меня какие-то задумки, идеи, но не всегда есть время их реализовать или проверить. Так было и с Pinba. О ней я узнал на позапрошлом DevConf. Собирался поставить… да, целый год собирался, и таки поставил. И знаете что, она мне понравилась. Особенно в свете недавно вышедшей гуевины Pinboard.

Концептуально Pinba, как и любое клиент-серверное приложение состоит из… та-да… клиента и сервера (как подсказывает нам Адмирал Ясен Хрен). Клиент – легковесное php-расширение, которое собирает статистику по скриптам и отправляет их UDP датаграммами на сервер. В этом то и заключается killer-feature пинбы. Она практически не даёт оверхеда на мониторинг.

pinba-work
Как работает pinba

Сервер сделан весьма оригинально, он представляет собой MySQL storage engine, в котором только для чтения доступны данные статистики. Я сначала удивился, но потом понял всю прелесть такого решения. Ведь очень просто ваять свои гуевины для pinba, и видимо поэтому и увидел свет Pinboard.

Ну в общих чертах всё понятно, теперь приступим к установке настройки и тестированию пинбы. Тестовый стенд представлен моим старым ноутом с Ubuntu 13.04 Server на борту.

Установка pinba-mysql-engine (сервера)

Отлично сервер установлен. Проверить его можно с помошью команды SHOW PLUGINS. Дальше ставим клиента. Можно на ту же машину, можно на другую.

Установка pinba-extension (клиент)

Не забудьте разрешить UDP трафик на порт пинбы в ваших файерволах/роутерах.

Установка pinboard (GUI для Pinba)

Pinboard – это симпатишная гуевина для pinba. Написана на Silex и Symfony2-компонентах, что не может не радовать. Ну тут не буду разжевывать, а дам ссылку на хабрапост в котором детально описан процесс установки.

Преимущества pinba+pinboard

Мне очень понравился график потребления памяти. Вот кстати, как выглядит главное окно Pinboard.

pinba-main

Обратите внимание, что если запросы вашего сайта обрабатывает несколько бекэндов, то вы можете переключалкой посмотреть статистику отдельно по каждому, или сводную, как захотите.

Использование pinba для мониторинга и отладки

Для теста я переносил сайт с одного ip на другой и в пинбе наблюдал как расходятся DNS записи (соотношения обращений к одному хосту и другому). Вот только не хватает круговой диаграммы или гистограммы по хостам для сайта. Это было бы вообще шикарно.

pinba-dns
Визуализация распространения DNS зоны

 

На рисунке часть графика, обозначенная, как A – время нахождения движка на старом сервере (трудяга перегружен). Сектор B с пилой – время расхождения DNS зоны, когда часть клиентов обращается к старому севреру (пики), а часть к новому (спады). Сектор C – сайт полностью перехал на новый сервер. Пики – генерация и кэширования контента, спады – нормальная отдача страниц. Соответственно интервал между пиками в секторе C – ttl кэша.

Или вот ещё вариант. Мы хотим сравнить, как работает наш бекенд с кэшированием и без него. Пожалуйста, просто включаем кэширование и мониторим пинбу в закладке Live в Pinboard.

pinba-cache
Использование pinba для отладки

Забыл названия столбцов отскринить, так что расскажу на словах. Первый столбец – имя хоста, второй – URL, третий – время обработки запроса в мс, четвертый – потребление памяти для запроса в Кб.

Третья строка – работа сайта (WordPress) без кэша. 4 секунды генерация, 11 Мб потребление.

Вторая строка – генерация кэша. Как видно тут время даже стало меньше, хоть и не обязано было, памяти – столько же.

Первая строка – получаем данные из кэша. Вау! Реально Вау! Сначала не поверил, проверил еще разок. Всё верно, 4 мс и пол-мегабайта памяти. И да, это страничный кэш в memcached на том же сервере. Но все равно впечатляет. В общем, к чему это я, теперь если надо проверить например, как сайт ведёт себя после деплоя свежего кода, или вообще в реалтайме посмотреть как чего – то пинба будет вам отличным помошником в этом.

В закладке Request time можно найти “Slowest requests for last day”. И вы сразу поймёте, какие запросы отжирают у вас ресурсы сервера. Pinboard понравилась мне за Live и Slow requests. Прямо то, что докутор прописал.

Ссылки

http://habrahabr.ru/post/183104/

Leave a Comment