[Документация Yandex Cloud](../../../../index.md) > [Monium](../../../index.md) > Поставка данных > Unified Agent > Обзор

# Агент для поставки метрик

Unified Agent — агент для поставки дополнительных метрик виртуальных машин и пользовательских приложений в Monium.

{% note info %}

Сейчас Unified Agent поддерживает только работу с метриками. Позднее будет добавлен формат OpenTelemetry для метрик, логов и трейсов.

{% endnote %}

Агент поддерживает:

- [сбор системных метрик Linux](../../../operations/unified-agent/linux_metrics.md) (процессор, память, диск);
- сбор метрик в формате [Prometheus](https://prometheus.io);
- поставку метрик в Monium;
- файловое хранилище для надежной доставки данных.

Примеры использования агента приведены в разделе [Поставка метрик](../../../operations/index.md#working-with-metrics). Подробнее про способы установки Unified Agent читайте в разделе [Установка и обновление Unified Agent](installation.md). Синтаксис файла конфигурации агента описан в разделе [Конфигурирование](configuration.md).

## Основные понятия {#basics}

Unified Agent предназначен для передачи потоковых данных, представленных в виде сообщений. Поток данных в Unified Agent называется сессией. Одновременно может быть установлено множество сессий.

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

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

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

## Схема работы Unified Agent {#scheme}

```mermaid
flowchart LR
    S[Поставщик данных] -->|Сообщения| IN[Вход]

    subgraph UA[Unified Agent]
      IN --> F[Фильтры]
      IN --> ST[(Хранилище)]
      F --> OUT[Выход]
      ST --> OUT
    end

    OUT --> MON[Monium]
```

## Сообщения {#messages}

Сообщение — это минимальная неделимая единица пользовательской информации, которая передается от системы или приложения в Unified Agent.

Сообщение состоит из тела, временной метки, пользовательских метаданных в формате `ключ: значение` и порядкового номера.

{% note info %}

Для правильной агрегации данных в мониторинге [целочисленные метрики](../../data-model.md#metric-types) `COUNTER` при загрузке в Monium Metrics переводятся в `DGAUGE`.

{% endnote %}

## Сессии {#sessions}

Сессия — это упорядоченный поток сообщений. Сессия имеет идентификатор, который должен быть уникальным среди всех установленных сессий, и пользовательские метаданные в формате `ключ:значение`.

Все сообщения, переданные в рамках сессии, содержат как метаданные сообщения, так и метаданные сессии.

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

## Входы {#inputs}
Вход предназначен для получения агентом сообщений, которые передаются в рамках сессий. Вход может содержать настройки инфраструктуры работы с сессиями для конфигурирования различных ограничений.

Читайте также [список реализованных входов](inputs.md).

## Выходы {#outputs}

Выход предназначен для отправки агентом сообщений в сторонние системы. В настоящий момент поддерживается выход `yc_metrics` для записи метрик в Monium Metrics API, а также несколько отладочных выходов.

Читайте также [список реализованных выходов](outputs.md).

## Фильтры {#filters}

Фильтр предназначен для отбрасывания, преобразования и агрегации сообщений.

Типы фильтров:

- обычные — работают с каждым сообщением в отдельности;
- накопительные — преобразуют набор входных сообщений в одно выходное.

Читайте также [список реализованных фильтров](filters.md).

## Хранилища {#storages}
Хранилища предназначены для промежуточного хранения сообщений — от поступления на вход до передачи на выход.
Используя хранилище, вы не потеряете данные, если агенту не удалось записать их в указанный выход, например, из-за сетевых проблем или недоступности API, куда отправляются сообщения.

Читайте также [конфигурирование хранилищ](storage.md).

## Маршрутизация {#routing}

### Цепочки преобразований {#pipes}
Цепочки преобразований содержат:
* набор фильтров, через которые последовательно проходят сообщения;
* ссылку на хранилище, где будут храниться сообщения до передачи на выход.

Цепочки преобразований можно делать именованными.

Читайте также [конфигурирование цепочек преобразований](routing.md#pipes).

### Каналы {#channels}

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

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

Каналы можно делать именованными.

Читайте также [конфигурирование именованных каналов](routing.md#channels).

### Маршруты доставки {#routes}

Маршрут доставки объединяет вход и канал.

Маршруты доставки, каналы и цепочки обработки позволяют сконфигурировать произвольное дерево обработки сообщений.

Взаимосвязь элементов дерева обработки сообщений представлена на схеме.

![Unified-Agent-Config](../../../../_assets/monitoring/concepts/unified-agent-config.svg)