Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Monitoring
  • Начало работы
    • Обзор
    • Установка и обновление
    • Запуск и остановка
      • Обзор
      • Входы
      • Выходы
      • Маршрутизация
      • Хранилища
      • Фильтры
      • Служебные
    • Рекомендации по использованию агента
    • Возможные ошибки
    • Удаление
  • Управление доступом
  • Справочник Terraform
  • История изменений
  • Обучающие курсы

В этой статье:

  • Описание хранилищ в секции storages
  • Добавление хранилища в секцию pipe
  • Плагин хранилища fs
  1. Агент сбора метрик
  2. Конфигурирование
  3. Хранилища

Хранилища

Статья создана
Yandex Cloud
Обновлена 6 июня 2024 г.
  • Описание хранилищ в секции storages
  • Добавление хранилища в секцию pipe
  • Плагин хранилища fs

Хранилища перечисляются в секции storages, ссылки на хранилища добавляются в секцию pipe. Количество хранилищ не ограничено, но сослаться на одно хранилище можно только один раз.

Описание хранилищ в секции storagesОписание хранилищ в секции storages

Описание хранилища состоит из следующих элементов:

  • name — имя хранилища, по которому на него можно сослаться из цепочки обработки;
  • plugin — плагин хранилища;
  • config — конфигурация входа.

Пример секции storages:

storages:
- name: main
  plugin: fs
  config:
    directory: ./data/storage/main
    max_partition_size: 500mb
- name: secondary
  plugin: fs
  config:
    directory: ./data/storage/secondary
    max_partition_size: 100mb

Добавление хранилища в секцию pipeДобавление хранилища в секцию pipe

Чтобы сослаться на хранилище, используется директива storage_ref с параметрами:

  • name — имя хранилища, определенное в секции storages;
  • flow_control — настройки механизма создания сессий.

Пример цепочки обработки со ссылкой на хранилище:

pipe:
  - storage_ref:
      name: main  # обязательный, имя хранилища, определенное в секции storages

      # Конфигурация инфраструктуры работы с сессиями.
      flow_control:
        new_sessions_rate_limit: null  # необязательный, по умолчанию не задан

Плагин хранилища fsПлагин хранилища fs

Поддерживается только один плагин – файловое хранилище fs. Сообщения сохраняются в партициях. Партиции — это директории, содержащие файлы-сегменты с данными сообщений, а также файлы с метаданными.

Важно

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

Описание параметров:

storages:  # необязательный
  
  # Имя хранилища. По этому имени на хранилище можно сослаться из цепочек преобразований при помощи storage_ref.
  # На одно хранилище можно сослаться только 1 раз.
- name: main  # обязательный
  # Имя плагина. Пока поддерживается только плагин fs для бинарного хранилища в файловой системе.
  plugin: fs  # обязательный

  config:
    # Директория с данными хранилища.
    # В ней создаются поддиректории для партиций.
    directory: ./data/storage  # обязательный

    # Максимальный размер партиции.
    # По умолчанию в хранилище есть только одна партиция с именем default.
    # Новая партиция создается только если пользователь явно этого потребовал, указав имя партиции в ключе _partition в метаданных сессии.
    # В основных сценариях партиция только одна, поэтому этот параметр можно считать лимитом на размер всего хранилища.
    max_partition_size: 10mb  # обязательный

    # Директория для хранения служебной информации хранилища.
    # По умолчанию — .state внутри directory
    state_directory: {directory} / .state  # необязательный, по умолчанию .state внутри directory

    # Максимальный размер сегмента (одного файла) внутри партиции.
    # По умолчанию — десятая часть размера партиции.
    max_segment_size: {max_partition_size} / 10  # необязательный, по умолчанию десятая часть от max_partition_size

    # Размер блока для записи.
    # Для снижения накладных расходов на системные вызовы перед вызовом write сообщения группируются в блок.
    # Вызов write осуществляется, если размер блока превышает указанный.
    block_flush_size: 1mb  # необязательный, по умолчанию 1mb

    # Время жизни блока для записи.
    # Вызов write будет осуществляться, если с момента поступления первого сообщения в блок прошло больше указанного времени.
    block_flush_period: 10ms  # необязательный, по умолчанию 10ms

    # Размер буфера для вызова syscall read.
    # По умолчанию совпадает с block_flush_size.
    read_buffer_size: {block_flush_size}  # необязательный, по умолчанию совпадает с block_flush_size

    # Время хранения информации о сессии.
    # Как только входящая сессия будет закрыта, хранилище перестанет хранить информацию о об этой сессии.
    # Соответствие sessionId->last_seq_no и метаданные сессии будут удалены.
    # Сессия удаляется только в том случае, если все данные по ней были записаны в выходы.
    session_retention_time: 1h  # необязательный, по умолчанию 1h

    # Время хранения данных партиции.
    # Партиция будет удалена через указанное время, если:
    # * все ее данные записаны в выходы и по ним получены подтверждения;
    # * нет активных сессий, пишущих в эту партицию.
    partition_retention_time: 1h  # необязательный, по умолчанию: 1h

    # Частота выполнения проверки на время хранения session_retention_time и partition_retention_time.
    retention_check_period: 1m  # необязательный, по умолчанию 1m

    # Частота выполнения fsync.
    # Чем чаще выполняется fsync, тем меньше данных нужно проверять при восстановлении после сбоя, и тем быстрее произойдет запуск агента.
    checkpoint_period: 1s  # необязательный, по умолчанию не задан

    # Параметр описывает условия, при которых сегменты с данными сохраняются после получения подтверждения от выхода.
    # Когда ни одно условие не выполнено, сегменты удаляются в порядке от старых к новым.
    # Под старым сегментом здесь понимается противоположный от того, в который запись идет на данный момент.
    #
    # Условия проверяются:
    # * в момент получения подтверждения от выхода;
    # * в момент поступления новых данных;
    # * регулярно с периодичностью retention_check_period.
    #
    # На уровне партиции поддерживаются счетчики TrailingMessageAgeMs и TrailingSegmentAgeMs.
    # TrailingMessageAgeMs определяется по timestamp первого сообщения самого старого сегмента.
    # Этот счетчик примерно (без учета возможной немонотонности timestamp) показывает период времени, за который в партиции имеются данные.
    # TrailingSegmentAgeMs определяется аналогично по следующему за ним сегменту.
    # Этот счетчик показывает, когда последний сегмент будет удален (при достижении значения свойства by_age).
    # Значения обоих счетчиков — в миллисекундах.
    # Если в партиции нет ни одного сегмента, оба счетчика равны нулю.
    # Если в партиции только один сегмент, значение TrailingSegmentAgeMs равно нулю.
    #
    # Параметр не задан по умолчанию, т.е. самый старый сегмент удаляется при получении подтверждения от выхода для последнего сообщения этого сегмента.
    data_retention:  # необязательный
      # Сегмент не удаляется, пока в нем есть более свежие сообщения.
      # Актуальность сообщений определяется по времени в поле timestamp первого сообщения предпоследнего сегмента.
      # В партиции будут храниться данные примерно за указанный период.
      by_age: 10d  # необязательный, по умолчанию не задан

      # Сегмент не удаляется, пока размер данных партиции, исключая собственный размер сегмента, остается меньше указанного.
      # То есть размер партиции будет поддерживаться не меньше указанного.
      # Если указать by_size: max, то данные будут удаляться только по достижении лимита на размер партиции.
      by_size: 500mb  # необязательный, по умолчанию не задан

    # Уровень логирования, который будет использован при удалении неподтвержденных данных.
    # Обычно мониторинг агента смотрит на значение счетчика `Errors` — общее число событий внутри агента, залогированных с уровнем ERROR.
    # Если переполнение хранилища — потенциально возможный сценарий (например, в агент записываются данные интенсивнее, чем лимит, указанный в параметре `new_sessions_rate_limit` секции `flow_control`), этим параметром можно отключить зажигание алертов в этом случае.
    # Возможные значения: EMERG, ALERT, CRITICAL_INFO, ERROR, WARNING, NOTICE, INFO, DEBUG, RESOURCES.
    unacknowledged_eviction_log_priority: ERROR  # необязательный, по умолчанию ERROR

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

Предыдущая
Маршрутизация
Следующая
Фильтры
Проект Яндекса
© 2025 ООО «Яндекс.Облако»