[Документация Yandex Cloud](../../index.md) > [Yandex Monitoring](../index.md) > [Концепции](index.md) > Прореживание данных

# Прореживание данных

В Yandex Monitoring понятие _прореживание данных_ используется в двух случаях:

* _Прореживание исторических данных_ — механизм постепенного уменьшения детализации данных в хранилище для уменьшения их объема.

* _Прореживание данных при чтении_ — механизм динамического уменьшения детализации данных при построении графиков. Он оптимизирует отображение, уменьшая количество точек до достаточного уровня.

## Прореживание исторических данных {#history-decimation}

Все метрики в хранилище Monitoring старше недели агрегируются с интервалом 5 минут для уменьшения объема хранимых исторических данных. Параметры прореживания изменить нельзя.

{% note info %}

До 7 августа 2024 года политика прореживания сохраняла только среднее значение. Сейчас в исторических данных сохраняются не только среднее, но и максимальное, минимальное, суммарное и последнее значения. Новые алгоритмы прореживания позволяют получить больше статистической информации, а также сделать графики более плавными.

{% endnote %}

Разные значения метрик, которые сохраняются при архивировании данных, можно отображать на дашборде или в обзоре метрик. Расширенный механизм архивирования позволяет при чтении данных мониторинга выбрать вариант прореживания.

## Прореживание данных при чтении {#reading-decimation}

Когда на графике или в запросе к Monitoring API запрошен достаточно широкий временной диапазон, из хранилища Monitoring потребуется прочитать большой объем данных. Это может привести к увеличению времени на выполнение запроса или ошибкам в отображении результатов на экране.

Для решения этих проблем используется прореживание данных.

Прореживание уменьшает количество точек, которые вернутся из хранилища Monitoring при чтении данных. А также выравнивает временные метки возвращаемых точек по определенной сетке. Дополнительно это помогает снизить нагрузку на диски и сеть.

### Работа механизма прореживания {#decimation-mechanism}

1. На основе запрошенного временного диапазона и настроек прореживания вычисляется интервал прореживания.
1. Запрошенный временной диапазон разбивается на последовательные непересекающиеся интервалы прореживания. Начало каждого интервала выбирается по [Unix-времени](https://ru.wikipedia.org/wiki/Unix-время).
1. К значениям метрики из интервала применяется функция агрегации, например, среднее значение. В результате получается прореженное значение.
1. В качестве временной метки прореженного значения используется начало интервала, в котором оно вычислено.

Выбрать метод прореживания можно при настройке графиков в разделах **Метрики** и **Дашборды**. 

### Методы прореживания {#decimation-methods}

* `Авто` — автоматическое прореживание, используется по умолчанию.

   В качестве интервала прореживания выбирается такой временной интервал, чтобы значения в нем встречались не чаще, чем одно на два пикселя монитора.

* `По интервалу` — задается интервал прореживания в секундах, минутах, днях. Например, при интервале в 3 минуты значения метрик за каждые 3 минуты будут объединены в одно.

   Так как начало каждого интервала выбирается по эпохе UNIX, которая началась в `00:00 UTC`, не получится агрегировать метрики строго по календарным дням.

   Например, в московской временной зоне интервал в 1 день будет охватывать период с 03:00 до 03:00 следующего дня по московскому времени.

* `По количеству точек` — задается количество точек, которые будут возвращены мониторингом.

   Интервал прореживания подбирается таким образом, чтобы в результате прореживания вернулось не больше точек, чем указано.

* `Без прореживания` — не использовать прореживание.

   Отключить прореживание можно только для временных диапазонов до 7 дней включительно. Дополнительно есть лимит на объем переданных данных в одном запросе — 100 МБ.

После выбора метода прореживания надо указать функцию агрегации и способ заполнения пропущенных значений.

### Функции агрегации для прореживания {#aggregation-functions}

Функция агрегации указывает, как вычислять прореженное значение по значениям интервала.

* `По умолчанию` — используется среднее значение.
* `Среднее` — среднее значение за интервал прореживания.
* `Максимальное` — максимальное значение за интервал, позволяет отслеживать всплески по метрикам.
* `Минимальное` — минимальное значение за интервал, позволяет отслеживать спады.
* `Последнее` — последнее значение из интервала, позволяет посмотреть оригинальные данные.
* `Сумма` — сумма всех значений за интервал.
* `Количество` — количество значений в интервале прореживания.

### Заполнение отсутствующих значений {#filling-missing-values}

Заполнение значений потребуется, если в интервале прореживания у метрики нет значений.

* `По умолчанию` — используется `Null`.
* `Null` — нулевое значение.
* `Без значения` — интервал прореживания пропускается.
* `Предыдущее значение` — в качестве временной метки прореженного значения вернется начало очередного интервала прореживания, в качестве значения — прореженное значение предыдущего интервала.

## Влияние прореживания на значения в метриках

В некоторых случаях вычисление среднего значения в политике прореживания может искажать значения в метриках. Например, при изменении объема RAM с `16 ГБ` до `18 ГБ`, в одном интервале могут оказаться старое и новое значение. Тогда при прореживании среднее значение RAM интервала будет `17 ГБ`. В реальности такого значения RAM не было.

Точно так же, при просмотре данных за больший интервал времени, могут сглаживаться кратковременные всплески. Например, загрузка CPU на графике может быть равномерной, `50%`. Но при выборе меньшего временного интервала или другой функции прореживания на графике появятся пики в `100%`.

Поэтому при просмотре данных выбирайте разные варианты агрегации. Просматривайте данные со средним значением, последним, максимальным или минимальным.