Сторожевой пес нагруженности: зачем мы создали свой инструмент для мониторинга работы 1С
Менеджер продукта BIA Technologies Анна Бочарова рассказывает, как система мониторинга PerfDog помогает не допустить критичных сбоев на пике продаж.
Когда зависает система — это всегда неприятно. Когда речь идет о системе, которая непосредственно связана с обслуживанием клиентов, — это уже прямые убытки для бизнеса. Представьте себе: майские праздники, всплеск потребительского спроса, а у кассы выстроилась очередь из десятка недовольных покупателей. А всё потому, что в системе возникли неожиданные проблемы со скоростью обработки данных, и процесс записи чека начал занимать тридцать секунд вместо пяти. Последние покупатели в очереди утомились ждать, развернулись и просто ушли. А в качестве вишенки на торте — оставили негативный отзыв на «тормознутый» магазин в интернете.
Директор компании рвет на себе волосы и обрушивается на ИТ-отдел или в панике заказывает услугу технической поддержки у знакомого подрядчика. В понедельник, когда нагрузка на систему традиционно снижается, проблемы магически исчезают. Если компания не занималась скрупулезным сбором статистики о работе системы, то выяснить, почему она «упала» на выходных, невозможно. Специалист техподдержки вручную настраивает сбор данных и ждет вечера пятницы, когда продажи снова взлетят, а система начнет давать сбои.
Это действительно происходит. Но по какой причине? Может быть, дело в высокой нагрузке на оборудование? Или в управляемых блокировках? Или в наличии ошибок в работе системы управления базами данных (СУБД)? Или банально в некорректно написанном программном коде? Специалист вручную анализирует показатели нагрузки, смотрит структуру объектов, проверяет все уязвимые места шаг за шагом, пока наконец не находит участок системы, операцию или запрос, который виновен в ужасных задержках. Дело «за малым» — максимально быстро разрешить проблему (разумеется, по повышенной ставке за срочность) и надеяться, что в следующие выходные ситуация уже не повторится.
Для крупного розничного магазина эта история звучит как страшный сон. Это большая потеря для бизнеса и в принципе большой стресс для всех участников процесса, начиная с несчастных кассиров и заканчивая операционными директорами, которые потом рассказывают на совещании про упущенную выручку. Однако на практике такое случается не так редко, как можно было бы подумать. Многие компании в принципе живут в вечном режиме «тушения пожаров» и при этом никак не обзаведутся датчиком дыма или огнетушителем. Возникает вопрос: можно ли обезопасить себя от таких ситуаций и не доводить бизнес до кризиса?
На самом деле, на рынке представлен целый ряд решений для мониторинга нагруженности информационных систем. Но ни одно из имеющихся решений не показалось нам идеальным. Какие-то из них не указывают на источник проблемы, а лишь сообщают о ее наличии. Другие хорошо определяют нагрузку на уровне СУБД, но практически не работают на уровне приложения и технологического журнала. Третьи не способны оперативно проанализировать высоконагруженную систему с тысячей пользователей и отображают статистику с запозданием на сутки.
Протестировав различные инструменты, мы пришли к пониманию, что нам необходимо создавать собственное решение. Нам нужен свой «сторожевой пес» производительности (performance), который будет вынюхивать любые проблемы за километр вокруг. А в нетиповых конфигурациях систем, разработанных своими силами, такие проблемы бывают. Так на свет появился PerfDog — инструмент для мониторинга и оценки производительности нетиповых конфигураций на базе платформы «1С».
PerfDog осуществляет неусыпный контроль нагрузки как на уровне СУБД, так и на уровне серверов «1С» и контекста кода. Собранная с помощью инструмента статистика позволяет засечь любые отклонения на ранней стадии и вовремя провести рефакторинг. По аналогии с подсказками смартфона, который показывает, какие приложения занимают больше всего места в памяти девайса, PerfDog показывает самые ресурсоемкие запросы к базе данных. Видя операции, которые могут в будущем перегрузить систему, мы можем предпринять оперативные шаги по их оптимизации.
Благодаря мониторингу, системный администратор может выявить задержки, которые практически не вызывают нагрузки на «железо» и в обычной ситуации остались бы незамеченными. Если, например, при нажатии определенной кнопки система стала обрабатывать запрос за две секунды вместо одной — рядовой бизнес-пользователь чаще всего даже не обратит на это внимания. Обнаружив жертву и виновника ожидания, ИТ-специалист сможет исправить ситуацию до того, как система начнет зависать на целый час (да, такое бывает!).
Что особенно ценно, PerfDog позволяет задать определенные границы нормы и настроить отправку оповещений при выходе за эти границы. Например, если мы расцениваем снижение скорости обработки запроса до 5 секунд как опасное, наш сторожевой пес начинает «лаять» при достижении этого порогового значения. Мы замечаем повышенную нагрузку на центральный процессор и сразу решаем проблему.
Отдельное внимание при разработке решения мы уделили его интерфейсу. Нам было важно, чтобы собранную статистику можно было сгруппировать и вывести на визуально понятный дашборд. Собранные на одном экране графики помогают обнаружить неочевидные закономерности и влияние одного фактора или процесса на другой.
Поскольку мы взяли за основу инструмент с открытым кодом, PerfDog можно легко дорабатывать под себя. Конкретный пользователь может подключить сервис по сбору и анализу дополнительных данных, настроить нужный именно ему набор графиков, обогатить текущие дашборды и задать визуальное отображение всей необходимой информации под конкретную техническую задачу.
Но при всех преимуществах решения, нужно понимать, что PerfDog не спасет бизнес от пожара. Когда у кассы столпилась очередь из недовольных покупателей, системным администраторам уже, мягко говоря, не до настройки красивых дашбордов. Система анализа нагрузок — инструмент проактивного мониторинга. Лучшее время для его установки — когда всё, на первый взгляд, работает в штатном режиме, и ничто не предвещает беды. В такое благословенное время руководитель должен задать себе вопрос: если случится пожар, как я буду действовать? Решать проблему самостоятельно или привлекать сторонних специалистов? Какая информация мне потребуется? Какого вообще вида бывают пожары, то есть на каких узлах и какие бывают отказы? Ответом на все эти вопросы может послужить продвинутая система мониторинга.
Какой красивый песель, он заслуживает лайка! Свой или нагенерированный?
А как это дашборд выглядит? Мало графики. Дайте хоть глянуть
Интересно. Но заметил, что в последнем абзаце предложения начинаются с малой буквы. Интересно)
Какой красивый пес