Pull to refresh

Pinboard — прокачиваем Pinba для мониторинга PHP

Reading time 2 min
Views 30K
Intaro PinboardСуществует полезный и нужный инструмент для мониторинга PHP под названием pinba. Он позволяет собирать статистику по выполнению PHP-скриптов вашего проекта. Мы реализовали небольшую систему, которая дополняет Pinba, и назвали ее Pinboard (Pinba board).

Суть работы


Pinba хранит исключительно realtime-данные за последние несколько минут, что очень круто, но не всегда удобно. Pinboard же периодически агрегирует эти данные в собственное хранилище и предоставляет простые средства просмотра и анализа этой информации, а в ближайшем будущем и средства простейшего мониторинга.

Возможности


Обзор выполнения PHP-скриптов


Для каждого хоста, к которому подключена pinba, можно посмотреть графики:

  • времени выполнения скриптов;
  • используемой памяти;
  • количества запросов в секунду;
  • и количества запросов с 5хх статусами.

При этом графики времени выполнения и используемой памяти строятся по перцентилям в виде 4-х кривых. Например, для времени выполнения это:

  • максимальное время выполнения 90% «самых быстрых» запросов
  • максимальное время выполнения 95% «самых быстрых» запросов
  • максимальное время выполнения 99% «самых быстрых» запросов
  • максимальное время всех запросов

Данные можно смотреть как для всего сайта, так и для отдельных серверов в случае, если сайт обслуживается несколькими серверами.

Мониторинг самых медленных и самых «тяжелых» скриптов


В Pinboard можно задать максимально допустимые значения времени выполнения скриптов и используемой ими памяти. Все скрипты, которые не уложились в заданные пределы, фиксируются в Pinboard и доступны в отдельном разделе для просмотра. Можно задать как общие значения, так индивидуальные для отдельно взятых сайтов. Все настройки задаются в yml в таком виде:

logging:
    # in seconds
    long_request_time:
        global: 1.0
        "supersite1.com": 0.8
        "superfastsite2.com": 0.3
    # max memory usage in kB
    heavy_request:
        global: 30000
        "coolsite.ru": 5000
        "heavysite.ru": 30000

Также, как и в случае обзорной информации, отчеты можно смотреть как для всего сайта, так и для отдельно взятого сервера, обслуживающего сайт.

Мониторинг запросов с ошибками


Pinboard отслеживает и фиксирует в отдельном разделе скрипты, которые вернули 5хх статус. В ближайшее время мы добавим возможность уведомления на почту о таких скриптах.

Live-режим


В системе предусмотрен отдельный раздел, в котором Pinboard отображает realtime-данные из таблиц pinba. Можно видеть, кто и что в данный момент просматривает на сайте. По каждому запросу выводится информация по времени выполнения и использованной памяти.

В качестве итога


У себя мы подключили к Pinboard значительную часть проектов, которые разрабатываем и поддерживаем. На данный момент наш Pinboard фиксирует порядка 2 млн. запросов в сутки. Период хранения мы установили в месяц. За это время набирается порядка 2 Гб данных.

В ближайшем будущем мы хотим добавить 2 важные фичи:

  • уведомление на почту о страницах с ошибками (done);
  • поддержка тегов pinba.

В целом мы будем рады пожеланиям, замечаниям и помощи в развитии системы. Проект опубликован под MIT лицензией.

Ссылки


Сайт проекта: http://intaro.github.io/pinboard/
Github: https://github.com/intaro/pinboard
Документация: https://github.com/intaro/pinboard/wiki
Tags:
Hubs:
+56
Comments 50
Comments Comments 50

Articles