Мониторинг баз данных. Как мы трижды переписывали плагин трассировки, чтобы не положить прод
Habr ·

Привет, Хабр! Меня зовут Артем Абакумов, я разработчик СУБД РЕД База Данных в РЕД СОФТ. Представим, что на проде виснет база. Счет идет на секунды, а утилиты мониторинга системы с красивой визуализацией показывают, как сервер медленно умирает из-за нехватки ресурсов. Чтобы выяснить, какое именно подключение (и каким SQL-запросом) все положило, приходится лезть в логи, запускать трассировку и ковыряться в файлах, пытаясь восстановить хранологию соыбтий. Проблема давно насущаная, поэтому мы решили создать инструмент, который будет непрерывно собирать все метрики, влияющие на работу базы данных, и при этом не тормозить систему. Звучит как отличная идея, но на пути к правильной архитектуре нам пришлось все трижды переписывать, воевать с разделяемой памятью и изобретать свои lock-free механизмы. В этой статье я расскажу историю наших архитектурных граблей и итоговое решение. Читать далее
Привет, Хабр! Меня зовут Артем Абакумов, я разработчик СУБД РЕД База Данных в РЕД СОФТ. Представим, что на проде виснет база. Счет идет на секунды, а утилиты мониторинга системы с красивой визуализацией показывают, как сервер медленно умирает из-за нехватки ресурсов. Чтобы выяснить, какое именно подключение (и каким SQL-запросом) все положило, приходится лезть в логи, запускать трассировку и ковыряться в файлах, пытаясь восстановить хранологию соыбтий. Проблема давно насущаная, поэтому мы решили создать инструмент, который будет непрерывно собирать все метрики, влияющие на работу базы данных, и при этом не тормозить систему. Звучит как отличная идея, но на пути к правильной архитектуре нам пришлось все трижды переписывать, воевать с разделяемой памятью и изобретать свои lock-free механизмы. В этой статье я расскажу историю наших архитектурных граблей и итоговое решение. Читать далее