Как один нюанс, связанный с обработкой замыканий в Rust, привёл к потере метрик в нашей компании, и какие уроки мы из этого извлекли
В потоковой базе данных у вас должны быть в распоряжении точные метрики – это не просто плюс, а важнейшая предпосылка для отслеживания производительности, выявления узких мест и обеспечения ровного функционирования системы в режиме реального времени. Метрики можно сравнить с циферблатами на приборном щитке автомобиля. Именно по ним вы получаете оперативную обратную связь и узнаёте, что творится «под капотом». Один из ключевых показателей, который необходимо отслеживать — это скорость извлечения данных с того уровня, где они хранятся. В системе реального времени такая функция неоценима.
Нам довелось столкнуться с загадочной ситуацией: одна из наших метрик, характеризующая хранение данных, якобы оставалась на нуле, даже когда нам было точно известно, что через систему прокачиваются данные. Всё равно, что вести машину со сломанным спидометром — мы же едем, но не знаем, с какой скоростью. В результате нам пришлось устроить настоящее расследование и углубиться в наш код на Rust. В результате мы узнали много нового о том, как в Rust раньше обрабатывались замыкания. Читать дальше →
[Перевод] История о недостающих метриках: странности с замыканиями в Rust