Агент для поставки метрик
Yandex Unified Agent — агент для поставки дополнительных метрик виртуальных машин и пользовательских приложений в сервис Yandex Monitoring.
Агент поддерживает:
- сбор системных метрик Linux (процессор, память, диск);
- сбор метрик в формате Prometheus
; - поставку метрик в Yandex Monitoring;
- файловое хранилище для надежной доставки данных.
Примеры использования агента приведены в разделе Работа с метриками. Подробнее про способы установки Unified Agent читайте в разделе Установка и запуск Yandex Unified Agent. Синтаксис файла конфигурации агента описан в разделе Конфигурирование.
Основные понятия
Yandex Unified Agent предназначен для передачи потоковых данных, представленных в виде сообщений, например, метрик или логов. Поток данных в Unified Agent называется сессией. Одновременно может быть установлено множество сессий.
Агент получает сообщения через вход и отправляет их в один или несколько выходов. Для промежуточной обработки сообщений существуют фильтры, а для сохранения на диск — хранилища. Входы, выходы, фильтры и хранилища реализуются при помощи плагинов.
Для маршрутизации сообщений существуют маршруты доставки, состоящие из входа и канала. Канал состоит из цепочки преобразований и узла одного из типов: выход, канал или разветвитель. Цепочка преобразований может содержать фильтры и ссылки на хранилища. Цепочка преобразований может отсутствовать.
Вы можете создавать именованные каналы и цепочки обработки. Это позволит избежать дублирования конфигурации и направить сообщения из многих входов в один выход.
Схема работы Unified Agent
Сообщения
Сообщение — это минимальная неделимая единица пользовательской информации, которая передается от системы или приложения в Unified Agent.
Сообщение состоит из тела, временной метки, пользовательских метаданных в формате ключ:значение
и порядкового номера.
Примечание
Для правильной агрегации данных в мониторинге целочисленные метрики COUNTER
при загрузке в Monitoring переводятся в DGAUGE
.
Сессии
Сессия — это упорядоченный поток сообщений. Сессия имеет идентификатор, который должен быть уникальным среди всех установленных сессий, и пользовательские метаданные в формате ключ:значение
.
Все сообщения, переданные в рамках сессии, содержат как метаданные сообщения, так и метаданные сессии.
Виды собираемой информации (входы), преобразование (фильтры), место для промежуточного хранения (хранилище) и выходы задаются в файле конфигурации Unified Agent.
Входы
Вход предназначен для получения агентом сообщений, которые передаются в рамках сессий. Вход может содержать настройки инфраструктуры работы с сессиями для конфигурирования различных ограничений.
См. также список реализованных входов.
Выходы
Выход предназначен для отправки агентом сообщений в сторонние системы. В настоящий момент поддерживается выход yc_metrics
для записи метрики в Yandex Monitoring API, а также несколько отладочных выходов.
См. также список реализованных выходов.
Фильтры
Фильтр предназначен для отбрасывания, преобразования и агрегации сообщений.
Типы фильтров:
- обычные — работают с каждым сообщением в отдельности;
- накопительные — преобразуют набор входных сообщений в одно выходное.
См. также список реализованных фильтров.
Хранилища
Хранилища предназначены для промежуточного хранения сообщений от поступления на вход и до передачи на выход.
Используя хранилище, вы не потеряете данные, если агенту не удалось записать их в указанный выход. Например, из-за сетевых проблем или недоступности API, куда отправляются сообщения.
См. также конфигурирование хранилищ.
Маршрутизация
Цепочки преобразований
Цепочки преобразований содержат:
- набор фильтров, через которые последовательно проходят сообщения;
- ссылку на хранилище, где будут храниться сообщения до передачи на выход.
Цепочки преобразований можно делать именованными.
См. также конфигурирование цепочек преобразований.
Каналы
Каналы группируют цепочку преобразований и один из узлов: выход, именованный канал или разветвитель.
Разветвитель позволяет указать набор каналов и копирует поступающее в него сообщение в каждый из своих каналов. При помощи разветвителя можно продублировать потоки в разные выходы, а комбинируя разветвители и фильтры, можно направлять разные сообщения в разные каналы по некоторым признакам, например, по метаданным.
Каналы можно делать именованными.
См. также конфигурирование именованных каналов.
Маршруты доставки
Маршрут доставки объединяет вход и канал.
Маршруты доставки, каналы и цепочки обработки позволяют сконфигурировать произвольное дерево обработки сообщений.
Взаимосвязь элементов дерева обработки сообщений представлена на схеме.