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

# Модель данных в Monitoring

Данные в сервисе Yandex Monitoring хранятся в виде [временных рядов](https://en.wikipedia.org/wiki/Time_series).

## Метрики {#metric}
_Метрика_ — это временной ряд, который показывает изменение какой-либо величины во времени. Например, состояние ресурса одного из сервисов Yandex Cloud: количество занятого места на диске, скорость передачи данных по сети и т. д.

Для идентификации метрик используются текстовые [метки](#label).

### Агрегирование запросов {#aggregation}

Некоторые метрики (например, `disk.write_latency` в Yandex Compute Cloud) отслеживают большое количество запросов, которое может достигать десятков тысяч в секунду. Запросы в таких метриках изначально агрегируются в бакеты в зависимости от значения.

В таких метриках существует несколько бакетов, например `1`, `2`, `5`, `10` и т.д. Так, в бакете `1` хранятся запросы, выполнение которых заняло до 1 мс, в бакете `2` — до 2 мс, в бакете `5` — до 5 мс и т.д.

При выполнении запроса сервис измеряет время его выполнения и определяет, к какому бакету его отнести. Например, если запрос выполнился за 7 мс, то он попадет в бакет `10`, как и все другие запросы, выполнявшиеся от 5 до 10 мс.

Значение таких метрик представляет собой дробное число — среднее количество запросов за определенную единицу времени, например за 5 секунд.

Чаще всего к таким метрикам применяется [фильтр](querying.md#histogram_percentile) `histogram_percentile`, принимающий в качестве параметра процентную долю запросов, для которой требуется рассчитать минимальное время, в которое укладывается эта доля запросов.

Например:

> Была зафиксирована одна тысяча запросов, из которых:
> - 500 запросов выполнились за 0,5 мс;
> - 499 запросов выполнились за 1,5 мс;
> - 1 запрос выполнился за 1000 мс.

Среднее арифметическое значение на один запрос составит приблизительно 2 мс. Но это значение будет мало полезно из-за высокого пикового значения, которое в нем учтено. Значительно полезнее будет знать, что максимальное время выполнения запроса составило 1000 мс, но 99% запросов уложились в 2 мс. То есть 99-й процентиль запросов составил 2 мс. Этот процентиль можно получить, передав в фильтр `histogram_percentile` значение `99`.

Также на значения в метриках влияет [политика прореживания данных](decimation.md).

### Метки {#label}
_Метка_ — характеристика метрики в формате `ключ: "значение"`. Каждая метрика идентифицируется неупорядоченным набором меток. Обычно в качестве метки используется параметр, который принимает ограниченное множество значений. Например, код состояния HTTP, тип выполняющихся процедур в базе данных и т. д.

Метки бывают обязательные и дополнительные. Список обязательных меток:

- `cloudId` — [идентификатор облака](../../resource-manager/operations/cloud/get-id.md), в котором находится ресурс.
- `folderId` — идентификатор каталога, в котором находится ресурс.
- `service` — указывает на сервис Yandex Cloud, которому принадлежит ресурс. Например, `compute` или `managed-postgresql`.

{% note warning %}

При загрузке пользовательских метрик необходимо записать значение `custom` в метку `service`.

{% endnote %}

#### Ограничения на метки и их значения {#limits}

Для меток и их значений действуют следующие ограничения:

* метрика может иметь не более 16 меток, включая обязательные метки `cloudId`, `folderId`, `service`;
* имя метки не может быть пустым;
* имя метки не должно состоять из символа `-`;
* длина имени — не больше 32 символов;
* начинаться имя должно с буквы (регистр не важен), далее в имени могут быть буквы, цифры, символы `.` и `_`;
* в именах меток и значениях метрик не допускается использовать алфавит, отличный от латинского;
* поле `labels` не может содержать метки `project`, `cluster`, `service`, `name` — они зарезервированы. Их следует передавать в параметрах URL, по которому выполняется POST-запрос.

### Типы метрик {#metric-types}
В сервисе Yandex Monitoring есть следующие типы метрик:

Тип | Описание
----- | -----
`DGAUGE` | Числовой показатель (дробное число). Показывает значение метрики в определенный момент времени. Например, количество занятой оперативной памяти
`IGAUGE` | Числовой показатель (целое число). Показывает значение метрики в определенный момент времени.
`COUNTER` | Счетчик. Показывает значение метрики, которое растет со временем. Например, количество дней непрерывной работы сервиса.
`RATE` | Производная. Показывает изменение значения метрики во времени. Например, количество запросов в секунду

### Запросы {#queries}

Запрос — произвольное выражение на [языке запросов](querying.md), результатом которого является линия или набор линий. В тексте запроса можно ссылаться на результаты вышестоящих запросов как на переменные.

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

В сервисе Monitoring доступны следующие шаблоны:

Синтаксис | Описание
----- | -----
`label="*"` | Выводит все метрики с указанной меткой. Например, запрос `host="*"` выведет все метрики, у которых есть метка `host`.
`label="glob"` | Выводит все метрики, значение метки которого удовлетворяет [glob-выражению](https://ru.wikipedia.org/wiki/Шаблон_поиска):<br/><br/>`*` — любое количество символов (в том числе отсутствие). Например, `name="folder*"` выведет все метрики, у которых значение метки `name` начинается с префикса `folder`.<br/><br/>`?` — один произвольный символ. Например, `name="metric?"` выведет все метки, у которых есть в значении есть один символ после `metric`<br/><br/>`\|` — все указанные варианты. Например, `name="metric1\|metric2"` — две метрики, со значениями метки `metric1` и `metric2`.