Сервис сбора и хранения метрик

В качестве сервиса сбора и хранения метрик может быть установлен Prometheus server или VictoriaMetrics.

По умолчанию, используется Prometheus server.

Сервис хранит метрики как данные временных рядов. Иными словами, данные о метриках хранятся вместе с отметкой времени, когда эти метрики были собраны, а также с опциональными парами «ключ-значение», называемыми метками. Архитектура баз данных для хранения временных рядов и принцип формирования запросов отличаются от реляционных баз данных.

Сбор метрик происходит по pull-модели, т.е. сервис самостоятельно опрашивает экспортёры в соответствии с заданным интервалом. Перечень опрашиваемых экспортёров находится в конфигурационном файле сервиса (по умолчанию prometheus.yml), который формируется в процессе развёртывания на основе inventory. Адрес и порт экспортёра составляют так называемый «таргет» в конфигурационном файле. Однотипные таргеты обычно сгруппированы внутри параметра job_name.

Примечание

При одновременном включении Prometheus server и VictoriaMetrics оба сервиса будут работать независимо.

При развёртывании Grafana одновременно с Prometheus server и/или VictoriaMetrics будет создан источник данных (data source) с типом prometheus, который будет подключён к Prometheus server.

Для работы с данными внутри VictoriaMetrics при одновременном включении и Prometheus server и VictoriaMetrics, в Grafana необходимо вручную создать соответствующий data source.

Prometheus server

Prometheus server является «монолитным» сервисом, который отвечает за сбор и хранение метрик, обработку правил, и пользовательских запросов.

Подробная документация доступна по ссылке https://prometheus.io/docs.

Установка

Для развёртывания Prometheus в качестве сервиса хранения метрик выполните следующие действия:

  1. В конфигурационный файл региона (по умолчанию /globals.d/REGION.yml) добавьте переменную enable_prometheus со значением yes. Пример конфигурации:

    enable_prometheus: "yes"
    
  2. Запустите пайплайн с тегом prometheus.

  3. После завершения пайплайна должны быть развёрнуты и предварительно настроены: Prometheus, набор экспортёров, Alertmanager.

Настройка периода хранения

Для ограничения размера хранимых данных в Prometheus предусмотрено несколько параметров запуска. Основные параметры:

  • --storage.tsdb.retention.time — определяет время, через которое старые данные будут перезаписаны. Если параметр не задан, то по умолчанию установлено значение равное 15d (15 дней).

  • --storage.tsdb.retention.size — определяет максимальное количество байт сохраняемых блоков памяти. Самые старые данные будут удалены в первую очередь. Если параметр не задан, то по умолчанию установлено значение равное 0, что означает отсутствие ограничения на максимальный размер. Поддерживаемые единицы измерения B, KB, MB, GB, TB, PB, EB (например, 512MB).

При одновременном указании ограничений как по времени хранения данных так и по их размеру, будет применяться ограничение по событию, наступившему в первую очередь.

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

Для установки ограничений с помощью параметров запуска Prometheus server выполните следующие действия:

  1. В конфигурационном файле региона (по умолчанию /globals.d/REGION.yml) добавьте или измените переменную prometheus_cmdline_extras. Пример конфигурации с ограничением по длительности хранения данных 15 дней и без ограничения по размеру базы данных:

    prometheus_cmdline_extras: "--storage.tsdb.retention.time 15d --storage.tsdb.retention.size 0"
    
  2. Запустите пайплайн с тегами prometheus, victoriametrics.

Долгосрочное хранение метрик

Для долгосрочного хранения метрик предусмотрена возможность развёртывания VictoriaMetrics с репликацией метрик из Prometheus server в VictoriaMetrics.

Для включения данного функционала:

  1. В конфигурационный файл региона (по умолчанию /globals.d/REGION.yml) добавьте переменную prometheus_use_victoriametrics_as_backend со значением yes. Пример конфигурации:

    prometheus_use_victoriametrics_as_backend: "yes"
    
  2. Запустите пайплайн с тегом prometheus.

VictoriaMetrics

В отличие от Prometheus server, сервис VictoriaMetrics является модульным и состоит из нескольких компонент. В составе системы мониторинга используются следующие компоненты:

  • vmselect - обрабатывает запросы и получает запрошенные данные из vmstorage;

  • vminsert - отвечает за получение данных и распределение их между vmstorage;

  • vmstorage - непосредственно хранит метрики как данные временных рядов;

  • vmagent - агент для сбора метрик и сохранения их в VictoriaMetrics или любой другой TSDB посредством Prometheus remote_write или VictoriaMetrics remote_write протоколов;

  • vmalert - проверяет правила алертов и направляет сообщения об алертах в Prometheus Alertmanager.

Примечание

При значении переменной prometheus_use_victoriametrics_as_backend: "yes" устанавливаются и используются только следующие компоненты:

  • vmselect,

  • vminsert,

  • vmstorage.

Подробная документация доступна по ссылке https://docs.victoriametrics.com/.

Установка

Для развёртывания VictoriaMetrics в качестве сервиса сбора и хранения метрик выполните следующие действия:

  1. В конфигурационный файл региона (по умолчанию /globals.d/REGION.yml) добавьте переменную enable_victoriametrics со значением yes и переменную enable_prometheus_server со значением no. Пример конфигурации:

    enable_victoriametrics: "yes"
    enable_prometheus_server: "no"
    
  2. Запустите пайплайн с тегами prometheus и victoriametrics.

  3. После завершения пайплайна должны быть развёрнуты и предварительно настроены: VictoriaMetrics, набор экспортёров, Alertmanager.

Настройка периода хранения

Для ограничения размера хранимых данных в VictoriaMetrics для компонента vmstorage предусмотрено несколько параметров запуска. Основные параметры:

  • -retentionPeriod — данные, которые выходят за указанные период, автоматически удаляются. Минимальное значение 24h или 1d. Поддерживаемые суффиксы: s (секунда), h (час), d (день), w (неделя), y (год). Если суффикс не указан, то длительность считается в месяцах. Если параметр не задан, то по умолчанию установлено значение равное 1 (1 месяц).

  • -storage.minFreeDiskSpaceBytes — определяет минимальное свободное место в storageDataPath, после которого vmstorage перестанет принимать новые данные. Поддерживаемые опциональные суффиксы единиц измерения: KB, MB, GB, TB, KiB, MiB, GiB, TiB. Значение по умолчанию 10000000.

Для установки ограничений с помощью параметров запуска vmstorage выполните следующие действия:

  1. В конфигурационном файле региона (по умолчанию /globals.d/REGION.yml) добавьте или измените переменную victoriametrics_vmstorage_cmdline_extras. Пример конфигурации с ограничением по длительности хранения данных в 15 дней:

    victoriametrics_vmstorage_cmdline_extras: "-retentionPeriod 15d"
    
  2. Запустите пайплайна с тегом victoriametrics.