Архитектура сервиса
Сервис Cloud Monitoring состоит из нескольких частей:
- Масштабируемый API по приему метрик.
- Распределенное хранилище метрик.
- Масштабируемый API по чтению значений метрик и построению запроса.
- Агенты для отправки стандартных метрик.
- Пользовательский интерфейс с возможностью строить дашборды и графики.
- Сервис централизованного обновления агентов мониторинга.
Каждый сервис пишет данные в свое пространство имен. Стандартные названия для пространств имен, формируемые сервисами VK Cloud, имеют вид: mcs/servicename. Если необходимо писать пользовательские метрики, то название для пространства имен не должно начинаться с символов mcs/.
Название сервиса | Название пространства имен |
|---|---|
Cloud Servers |
|
Cloud Networks |
|
VK Object Storage |
|
Cloud Containers |
|
Cloud Databases |
|
SQS |
|
Marketplace |
|
CDN |
|
Arenadata DB as a Service |
|
Cloud Monitoring |
|
В метках передается дополнительная метаинформация, которая может идентифицировать целевой ресурс, например для ВМ это могут быть название или идентификатор ВМ.
Для каждой метрики, которая отправляется в хранилище, можно указать произвольный набор меток, т.е. пар ключ/значение. Например, вы вместе со значением метрики cpu_total хотите передать имя хоста виртуальной машины и название зоны доступности, в которой она находится. Тогда вам необходимо заполнить значения для меток host и availability_zone.
Переданные метки и их значения сохраняются в базу данных Cloud Monitoring. Значения одной и той же метрики автоматически агрегируются с точностью до периодов 1 минута, 5 минут, 1 час. Агрегирование происходит по всем полям меток, с которыми было сохранено значение метрики.
Далее ключи и значения меток можно использовать для построения запросов, которые фильтруют и группируют значения метрик. Например, можно построить такой запрос в формате типа PromQL:
SUM BY(host) (cpu:Minimum{instance="<"span >"server1", app!="<"span >"system"})
SUM BY(job) (cpu:Average{host="<"span >"server1", job!="<"span >"system"}[12h] offset 24h)
Основные характеристики процесса агрегирования:
-
Cloud Monitoring автоматически агрегирует значения метрик по интервалам 1 минута, 5 минут, 1 час.
-
Сырые значения метрик автоматически удаляются после агрегирования.
-
По умолчанию поддерживаются следующие функции агрегирования:
- минимум,
- максимум,
- среднее.
-
Агрегирование происходит по всем полям меток, с которыми было сохранено значение метрики.
-
Агрегированные метрики хранятся в течение 30 дней.
-
Пользователь может получить значения агрегированных метрик с фильтрацией по необходимым значениям меток.
В Cloud Monitoring есть стандартные единицы измерений, которые можно передавать и по которым можно агрегировать:
Seconds, Microseconds, Milliseconds, Bytes, Kilobytes, Megabytes, Gigabytes, Terabytes, Bits, Kilobits, Megabits, Gigabits, Terabits, Percent, Count, Bytes/Second, Kilobytes/Second, Megabytes/Second, Gigabytes/Second, Terabytes/Second, Bits/Second, Kilobits/Second, Megabits/Second, Gigabits/Second, Terabits/Second, Count/Second, None
Если единица измерений не указана, используется None.