Внедрение патчей ClickHouse в производственной среде с помощью XRay.
Автор: ClickHouse
Загружено: 2026-04-06
Просмотров: 109
Описание:
Эта презентация была представлена на конференции FOSDEM 2026.
Бывало ли так, что при отладке проблемы в производственной среде вы жалели, что не добавили ещё одну запись в лог — и в итоге сталкивались с необходимостью пересборки, ожиданием CI и полным повторным развертыванием? Команда ClickHouse интегрировала XRay от LLVM, чтобы решить именно эту проблему. Он позволяет оперативно вносить изменения в работающую производственную систему, внедряя логирование, профилирование и даже преднамеренные задержки в любую функцию без необходимости пересборки.
XRay резервирует место в точках входа и выхода функций, которое можно атомарно изменить с помощью пользовательских обработчиков во время выполнения. Команда разработала три типа обработчиков: LOG для добавления забытых точек трассировки, SLEEP для воспроизведения или предотвращения ошибок, чувствительных ко времени, и PROFILE для детерминированного профилирования в дополнение к существующему профилировщику выборки. Накладные расходы на производительность в неактивном состоянии незначительны.
Управление осуществляется с помощью SQL-запроса — `SYSTEM INSTRUMENT ADD LOG 'QueryMetricLog::startQuery' 'message'` — который мгновенно вносит изменения в функцию, а результаты отображаются в `system.trace_log`. В докладе также обсуждались проблемы интеграции (анализ ELF-файлов, потокобезопасность, атомарное внесение изменений), показатели производительности (увеличение размера бинарного файла на 4–7%, практически нулевые затраты времени выполнения) и реальные примеры из практики эксплуатации.
Повторяем попытку...
Доступные форматы для скачивания:
Скачать видео
-
Информация по загрузке: