Прореживание данных
В 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%.
Поэтому при просмотре данных выбирайте разные варианты агрегации. Просматривайте данные со средним значением, последним, максимальным или минимальным.