Прореживание данных
В Yandex Monitoring понятие прореживание данных используется в двух случаях:
-
Прореживание исторических данных — механизм постепенного уменьшения детализации данных в хранилище для уменьшения их объема.
-
Прореживание данных при чтении — механизм динамического уменьшения детализации данных при построении графиков. Он оптимизирует отображение, уменьшая количество точек до достаточного уровня.
Прореживание исторических данных
Все метрики в хранилище Monitoring старше недели агрегируются с интервалом 5 минут для уменьшения объема хранимых исторических данных. Параметры прореживания изменить нельзя.
Примечание
До 7 августа 2024 года политика прореживания сохраняла только среднее значение. Сейчас в исторических данных сохраняются не только среднее, но и максимальное, минимальное, суммарное и последнее значения. Новые алгоритмы прореживания позволяют получить больше статистической информации, а также сделать графики более плавными.
Разные значения метрик, которые сохраняются при архивировании данных, можно отображать на дашборде или в обзоре метрик. Расширенный механизм архивирования позволяет при чтении данных мониторинга выбрать вариант прореживания.
Прореживание данных при чтении
Когда на графике или в запросе к Monitoring API запрошен достаточно широкий временной диапазон, из хранилища Monitoring потребуется прочитать большой объем данных. Это может привести к увеличению времени на выполнение запроса или ошибкам в отображении результатов на экране.
Для решения этих проблем используется прореживание данных.
Прореживание уменьшает количество точек, которые вернутся из хранилища Monitoring при чтении данных. А также выравнивает временные метки возвращаемых точек по определенной сетке. Дополнительно это помогает снизить нагрузку на диски и сеть.
Работа механизма прореживания
- На основе запрошенного временного диапазона и настроек прореживания вычисляется интервал прореживания.
- Запрошенный временной диапазон разбивается на последовательные непересекающиеся интервалы прореживания. Начало каждого интервала выбирается по Unix-времени
. - К значениям метрики из интервала применяется функция агрегации, например, среднее значение. В результате получается прореженное значение.
- В качестве временной метки прореженного значения используется начало интервала, в котором оно вычислено.
Выбрать метод прореживания можно при настройке графиков в разделах Метрики и Дашборды.
Методы прореживания
-
Авто
— автоматическое прореживание, используется по умолчанию.В качестве интервала прореживания выбирается такой временной интервал, чтобы значения в нем встречались не чаще, чем одно на два пикселя монитора.
-
По интервалу
— задается интервал прореживания в секундах, минутах, днях. Например, при интервале в 3 минуты значения метрик за каждые 3 минуты будут объединены в одно.Так как начало каждого интервала выбирается по эпохе UNIX, которая началась в
00:00 UTC
, не получится агрегировать метрики строго по календарным дням.Например, в московской временной зоне интервал в 1 день будет охватывать период с 03:00 до 03:00 следующего дня по московскому времени.
-
По количеству точек
— задается количество точек, которые будут возвращены мониторингом.Интервал прореживания подбирается таким образом, чтобы в результате прореживания вернулось не больше точек, чем указано.
-
Без прореживания
— не использовать прореживание.Отключить прореживание можно только для временных диапазонов до 7 дней включительно. Дополнительно есть лимит на объем переданных данных в одном запросе — 100 МБ.
После выбора метода прореживания надо указать функцию агрегации и способ заполнения пропущенных значений.
Функции агрегации для прореживания
Функция агрегации указывает, как вычислять прореженное значение по значениям интервала.
По умолчанию
— используется среднее значение.Среднее
— среднее значение за интервал прореживания.Максимальное
— максимальное значение за интервал, позволяет отслеживать всплески по метрикам.Минимальное
— минимальное значение за интервал, позволяет отслеживать спады.Последнее
— последнее значение из интервала, позволяет посмотреть оригинальные данные.Сумма
— сумма всех значений за интервал.Количество
— количество значений в интервале прореживания.
Заполнение отсутствующих значений
Заполнение значений потребуется, если в интервале прореживания у метрики нет значений.
По умолчанию
— используетсяNull
.Null
— нулевое значение.Без значения
— интервал прореживания пропускается.Предыдущее значение
— в качестве временной метки прореженного значения вернется начало очередного интервала прореживания, в качестве значения — прореженное значение предыдущего интервала.
Влияние прореживания на значения в метриках
В некоторых случаях вычисление среднего значения в политике прореживания может искажать значения в метриках. Например, при изменении объема RAM с 16 ГБ
до 18 ГБ
, в одном интервале могут оказаться старое и новое значение. Тогда при прореживании среднее значение RAM интервала будет 17 ГБ
. В реальности такого значения RAM не было.
Точно так же, при просмотре данных за больший интервал времени, могут сглаживаться кратковременные всплески. Например, загрузка CPU на графике может быть равномерной, 50%
. Но при выборе меньшего временного интервала или другой функции прореживания на графике появятся пики в 100%
.
Поэтому при просмотре данных выбирайте разные варианты агрегации. Просматривайте данные со средним значением, последним, максимальным или минимальным.