Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Monitoring
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Работа с метриками
      • Поставка системных метрик Linux
      • Поставка метрик пользовательских приложений
      • Поставка метрик HAProxy и других сторонних приложений
      • Поставка метрик с хостов вне Yandex Cloud
      • Запись пользовательских метрик через API
      • Получение списка метрик
      • Выгрузка метрик
      • Экспорт метрик в формате Prometheus
    • Работа с дашбордами
      • Создание дашборда
      • Копирование дашборда
      • Добавление виджета на дашборд
      • Удаление виджета с дашборда
      • Удаление дашборда
    • Работа с алертами
      • Создание алерта
      • Создание канала уведомлений
      • Удаление алерта
  • Концепции
    • Обзор сервиса
    • Модель данных
    • Визуализация
      • Обзор
      • Строка запроса
      • Виджеты
      • Дашборд
    • Передача метрик
      • Агент для поставки метрик
        • Обзор
        • Установка и запуск
        • Конфигурирование
        • Рекомендации по использованию агента
    • Язык запросов
    • Алертинг
    • Прореживание данных
    • Удаление устаревших метрик (TTL)
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
    • Действующие правила
    • Архив
      • Правила до 1 октября 2020 года
  • Справочник API
    • Аутентификация в API
    • REST
      • Обзор
      • MetricsData
        • Обзор
        • read
        • write
        • prometheusMetrics
      • MetricsMeta
        • Обзор
        • listLabelKeys
        • listLabelValues
        • listMetricNames
        • listMetrics
  • Справочник метрик
  • Вопросы и ответы
    • Общие вопросы
    • Навигация
    • Сбор и экспорт метрик
    • Метрики и единицы измерения
    • Алерты / уведомления
    • Все вопросы на одной странице
  1. Концепции
  2. Передача метрик
  3. Агент для поставки метрик
  4. Обзор

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

Статья создана
Yandex.Cloud
  • Основные понятия
    • Сообщения
    • Сессии
    • Входы
    • Выходы
    • Фильтры
    • Хранилища
    • Маршрутизация

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

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

  • сбор системных метрик Linux (процессор, память, диск);
  • сбор метрик в формате Prometheus;
  • поставку метрик в Yandex Monitoring;
  • файловое хранилище для надежной доставки данных.

Чтобы установить настроенный для поставки системных метрик Linux агент, выполните Docker-команду, указав в параметре FOLDER_ID идентификатор каталога, куда будут записываться метрики:

docker run \
    -p 16241:16241 -it --detach --uts=host \
    --name=ua \
    -v /proc:/ua_proc \
    -e PROC_DIRECTORY=/ua_proc \
    -e FOLDER_ID=a1bs... \
    cr.yandex/yc/unified-agent

Другие примеры использования агента приведены в разделе Работа с метриками. Подробнее про способы установки Unified Agent читайте в разделе Установка и запуск Yandex Unified Agent. Синтаксис файла конфигурации агента описан в разделе Конфигурирование.

Примечание

Yandex Unified Agent распространяется под лицензией Apache License 2.0.
Чтобы узнать больше о лицензии, выполните команды:

  • unified_agent --license — отображает полный текст лицензии;
  • unified_agent --credits — отображает список и лицензии библиотек, используемых агентом.

Основные понятия

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

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

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

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

Сообщения

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

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

Сессии

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

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

Входы

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

Пример описания входа в файле конфигурации:

- input:
    plugin: ... # имя плагина
    id: ... # рекомендуемый идентификатор входа, используется в метриках и логах
    flow_control: # настройка инфраструктуры работы с сессиями
    ...

См. также:

  • Список реализованных входов.
  • Настройки инфраструктуры работы с сессиями.

Выходы

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

Пример описания выхода в файле конфигурации:

- output:
    plugin: ... # имя плагина
    id: ... # рекомендуемый идентификатор выхода, используется в метриках и логах работы агента

См. также список реализованных выходов.

Фильтры

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

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

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

Пример описания фильтра в файле конфигурации:

- filter:
    plugin: ... # имя плагина
    id: ... # рекомендуемый идентификатор фильтра, используется в метриках и логах
    config: # конфигурация фильтра
        ...

См. также список реализованных фильтров.

Хранилища

Хранилища предназначены для промежуточного хранения сообщений.

Пример описания хранилища в файле конфигурации:

- input:
    plugin: ... # имя плагина
    id: ... # рекомендуемый идентификатор хранилища, используется в метриках и логах
    flow_control: # настройка инфраструктуры работы с сессиями
    ...

См. также список реализованных хранилищ.

Маршрутизация

Цепочки преобразований

Цепочки преобразований содержат набор фильтров или хранилищ, через которые последовательно проходят сообщения.

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

Пример описания цепочки преобразований в файле конфигурации:

...
- pipe:
    - filter:
        plugin: ...
        config: ...
    - filter:
        plugin: ...
        config: ...
    - storage_ref:
        storage: ...
    - filter:
        plugin: ...
        config: ...
    ...

Пример описания именованной цепочки преобразований в файле конфигурации:

pipes:
    - name: named_pipe
      pipe:
         ...

Полный пример конфигурирования цепочек преобразований приведен в разделе Секция pipes.

Каналы

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

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

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

Пример описания каналов в файле конфигурации:

channel:
    pipe:
        ...
    output:
        plugin: ...
        config: ...

channel:
    pipe:
        ...
    channel_ref: named_channel

channel:
    pipe:
        ...
    fanout:
        - channel:
            output:
                ...
        - channel:
            pipe:
                pipe_ref: named_pipe
            output:
                ...
        - channel:
            channel_ref: named_channel

        - channel:
            fanout:
                ...

Пример описания именованных каналов в файле конфигурации:

channels:
    - name: named_pipe
      channel:
         ...

См. также пример конфигурирования именованных каналов.

Маршруты доставки

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

Пример описания маршрутов в файле конфигурации:

routes:
    - input:
        plugin: ...
        id: ...
        config: ...

      channel:
        ...

    # Отправка сообщений из разных входов в один выход
    - input:
        ... (вход 1)
      channel:
        channel_ref: named_channel
        output:
            output_ref: named_output

    - input:
        ... (вход 2)
      channel:
        channel_ref: named_channel
        output:
            output_ref: named_output

channels:
    - name: named_channel
      channel:
        output:
            ...

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

Была ли статья полезна?

Language / Region
© 2022 ООО «Яндекс.Облако»
В этой статье:
  • Основные понятия
  • Сообщения
  • Сессии
  • Входы
  • Выходы
  • Фильтры
  • Хранилища
  • Маршрутизация