Концепции
Сервис мониторинга Linx Cloud состоит из нескольких частей:
- Масштабируемый API по приему метрик
- Распределенное хранилище метрик
- Масштабируемый API по чтению значений метрик и построению запроса
- Агенты для отправки стандартных метрик
- UI с возможностью строить дашборды и графики
- Сервис централизованного обновления агентов мониторинга
Namespaces
Каждый сервис пишет данные в свой namespace. Стандартные имена Namespace,формируемые сервисами Linx Cloud, выглядят как “mcs/servicename”. Если необходимо писать кастомные метрики, то название Namespace не должно начинаться с “mcs/”.
Таблица стандартных Namespace
Название сервиса |
Название Namespace |
Облачные вычисления
|
mcs/vm
|
Виртуальные сети
|
mcs/network
|
Объектное хранилище
|
mcs/cloudstorage
|
Контейнеры
|
mcs/containers
|
Базы данных
|
mcs/databases
|
Большие данные
|
mcs/bigdata
|
SQS
|
mcs/managedqueue
|
Marketplace
|
mcs/marketplace
|
CDN
|
mcs/cdn
|
Аналитические БД
|
mcs/dwh
|
IoT
|
mcs/iot
|
Monitoring
|
mcs/monitoring
|
Метки (Labels)
В Labels передается дополнительная метаинформация, которая может идентифицировать целевой ресурс, который мы мониторим. Т.е. В случае VM — название VM или id VM.
Для каждой метрики, которая отправляется в хранилище можно указать произвольный набор пар “ключ-значение” (labels). Например, вы вместе со значением метрики cpu_total хотите передать имя хоста виртуальной машины и название availability zone, в которой она находится, тогда вам необходимо заполнить значения для меток ‘host’ и ‘availability_zone’.
Переданные метки и их значения сохраняются в базу данных Linx Cloud Cloud Monitoring. Значения одной и той же метрики автоматически агрегируются с точностью до периодов 1 минута, 5 минут, 1 час. Агрегирование происходит по всем полям labels, с которыми была сохранено значение метрики
Далее ключи и значения меток можно использовать для построения запросов, которые фильтруют и группируют значения метрик. Например, можно построить такой запрос в формате ala 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
Агрегация
- Linx Cloud Monitoring автоматически агрегирует значения метрик по интервалам 1 минута, 5 минут, 1 час
- Сырые значения метрик автоматически удаляются после агрегации
- Из коробки поддерживаются следующие функции агрегации:
- Минимум
- Максимум
- Среднее
- Агрегирование происходит по всем полям labels, с которыми была сохранено значение метрики
- Агрегированные метрики хранятся в течение 30 дней
- Пользователь может получить значения агрегированных метрик с фильтрацией по необходимым значениям Labels
Единицы измерения
В Linx 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.