The Airbnb Tech Blog | Medium на русском
Подписаться
Построение высокопроизводительного конвейера метрик с помощью OpenTelemetry и vmagent
Миграция включала в себя перемещение большого конвейера метрик из StatsD в OpenTelemetry и Prometheus, с целью предварительного сбора метрик. Первоначальный акцент был сделан на инструментировании с использованием OpenTelemetry Protocol (OTLP) для внутренних сервисов и Prometheus для рабочих нагрузок с открытым исходным кодом, с StatsD в качестве резервного варианта. Подход с двойной записью, использующий общую библиотеку метрик, облегчил переход на OTLP. Это привело к улучшению производительности и доступу к функциям Prometheus, таким как гистограммы. Однако метрики высокой кардинальности вызвали регрессию производительности, которую устранили, используя дельта-темпоральность для выбранных сервисов. Был реализован конвейер агрегации на основе Prometheus с использованием vmagent для снижения затрат и обеспечения преобразований. Возникла проблема, когда функция rate() в Prometheus недосчитывала определенные счетчики из-за событий сброса. Они реализовали нулевую инъекцию во время агрегации для исправления расхождений, что было сделано прозрачно для пользователя. Это обеспечило решение проблемы со счетчиками и гарантировало точное представление данных. Наконец, команда создала готовую к будущему инфраструктуру метрик, внедрив эти изменения.