vision_utilizer

vision_utilizer рассчитывает производные метрики утилизации CPU и оперативной памяти, а также использования пространства хранилища. При запросе метрик компонент получает у VictoriaMetrics последние значения метрик node_exporter с помощью PromQL-запросов, пересчитывает их и возвращает результат в виде собственных метрик.

Способ установки

vision_utilizer устанавливается в составе сервера подсистемы мониторинга.

Файлы конфигурации

Настройки vision_utilizer хранятся в следующих файлах:

  • /etc/systemd/system/vision_utilizer.service — юнит systemd;

  • /opt/skala-r/etc/vision/server/vision_utilizer/config.yml — конфигурационный файл компонента (PromQL-запросы и правила расчёта метрик);

  • /opt/skala-r/etc/vision/server/vision_utilizer/environment.env — параметры запуска;

  • /opt/skala-r/etc/vision/server/vision_utilizer/web.yml — веб-конфигурация, в том числе параметры TLS и аутентификации для доступа к компоненту по HTTPS.

Не редактируйте файлы environment.env и web.yml напрямую. Вместо этого в настройках vision_core измените значения необходимых параметров в секциях utilizer и victoriametrics.

Конфигурационный файл

По умолчанию vision_utilizer загружает свои настройки из файла /opt/skala-r/etc/vision/server/vision_utilizer/config.yml. Чтобы использовать другой файл, укажите путь к нему:

  • В значении параметра --config.file, если ядро мониторинга развёрнуто на одном узле.

  • В значении параметра utilizer.config_filepath, если ядро развёрнуто в отказоустойчивой конфигурации.

Секция queries задаёт PromQL-выражения, по которым рассчитываются метрики:

Поле Метрика Описание

cpu_cores

utlz_cpu_cores

Количество ядер CPU

cpu_usage

utlz_cpu_usage

Степень утилизации ресурсов CPU в процентах

ram_total

utlz_ram_total

Объём установленной оперативной памяти в байтах

ram_used

utlz_ram_used

Объём используемой оперативной памяти в байтах

rom_total

utlz_disk_total

Объём хранилища в байтах по типу накопителя

rom_used

utlz_disk_used

Используемый объём хранилища в байтах по типу накопителя

Единицы измерения соответствуют выражениям по умолчанию.

Секция objects задаёт правила расчёта метрик для отдельных объектов:

objects:
  - node_id: (1)
    cpu:
      cores: (2)
      used:  (3)
    ram:
      total: (4)
      used:  (5)
    rom:
      - type: (6)
        mountpoints: (7)
        total: (8)
        used: (9)

Здесь:

1 Название сервера (node_id) или виртуальной машины (vm_id) в объектной модели.
2 Настройки расчёта метрики utlz_cpu_cores.
3 Настройки расчёта метрики utlz_cpu_usage.
4 Настройки расчёта метрики utlz_ram_total.
5 Настройки расчёта метрики utlz_ram_used.
6 Тип накопителя; значение попадает в метку type дисковых метрик объекта.
7 Список точек монтирования, по которым рассчитывается утилизация.
8 Настройки расчёта метрики utlz_disk_total.
9 Настройки расчёта метрики utlz_disk_used.

Значения общего и используемого объёма хранилища по всем указанным точкам монтирования суммируются по типу накопителя для каждого объекта.

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

  • add — значение, прибавляемое к значению метрики.

  • enable — включение расчёта метрики для объекта.

    Это поле обязательно для заполнения.
  • factor — множитель значения метрики.

  • set — значение, устанавливаемое вместо рассчитанного.

Модификаторы применяются в следующем порядке:

  1. factor;

  2. add;

  3. set.

Пример заполнения файла config.yml
queries:
  cpu_usage: 'avg without (mode,cpu) (1 - rate(node_cpu_seconds_total{mode="idle"}[15s])) * 100'
  cpu_cores: 'count without(cpu, mode) (node_cpu_seconds_total{mode="idle"})'
  ram_total: 'node_memory_MemTotal_bytes'
  ram_used: 'node_memory_MemTotal_bytes-node_memory_MemAvailable_bytes'
  rom_total: 'node_filesystem_size_bytes'
  rom_used: 'node_filesystem_size_bytes-node_filesystem_free_bytes'
objects:
- node_id: PG-PRD-3-MDL-BS-01-N-199
  cpu:
    cores:
      enable: true
    used:
      enable: true
  ram:
    total:
      enable: true
    used:
      enable: true
  rom:
    - type: "nvme"
      mountpoints:
        - /var/lib/libvirt/images
        - /run
      total:
        enable: true
        factor: 2
      used:
        enable: true

После изменения файла перезапустите службу vision_utilizer.

Успешность сбора метрик можно проверить PromQL-запросом up{job="utilizer"}.

Сеть

По умолчанию vision_utilizer слушает указанные в таблице порт и IP-адрес.

Адрес Порт Протокол

localhost

17099

TCP/HTTP

Параметры запуска

--audit.fileMaxAge

Продолжительность хранения файлов аудита в днях.

Значение по умолчанию: 7.

--audit.fileMaxSize

Максимальный размер одного файла аудита в МБ.

Значение по умолчанию: 100.

--audit.filePath

Путь к файлу для сохранения журнала аудита.

Пустое значение отключает аудит.

Значение по умолчанию: /opt/skala-r/var/log/vision/audit/server/vision_utilizer/audit.log.

--common.scrape-timeout

Длительность в секундах периода ожидания при запросе метрик.

Значение по умолчанию: 10.

--common.timeout

Внутренний период ожидания выполнения операций в секундах.

Значение по умолчанию: 30.

--component.shutdown-timeout

Период ожидания при плавном завершении работы компонента.

Значение по умолчанию: 15s (15 секунд).

--config.file

Путь к конфигурационному файлу с настройками расчёта метрик.

Значение по умолчанию: /opt/skala-r/etc/vision/server/vision_utilizer/config.yml.

--logging.fileMaxAge

Максимальное число дней логирования в одном файле. Используется при --logging.output=file.

Значение по умолчанию: 31.

--logging.fileMaxSize

Максимальный размер одного файла логирования в мегабайтах. Используется при --logging.output=file.

Значение по умолчанию: 100.

--logging.filePath

Путь к файлу записи логов. Используется при --logging.output=file.

Значение по умолчанию: /opt/skala-r/var/log/vision/server/vision_utilizer/vision_utilizer.log.

--logging.flags

Вывод установленных флагов при запуске.

Значение по умолчанию: false.

--logging.flags-table

Вывод флагов компонента в виде таблицы.

Значение по умолчанию: false.

--logging.level

Уровень логирования.

Возможные значения в порядке уменьшения подробности вывода:

  • DEBUG;

  • INFO;

  • WARN;

  • ERROR;

  • CRITICAL.

Значение по умолчанию: INFO.

--logging.output

Место логирования.

Возможные значения:

  • file;

  • stdout;

  • stderr.

Значение по умолчанию: file.

--version

Вывод версии компонента.

--victoria.endpoint

Точка подключения к VictoriaMetrics.

Значение по умолчанию: 127.0.0.1:8428.

--victoria.password

Пароль пользователя BasicAuth для подключения к VictoriaMetrics.

Значение хранится в Ansible Vault.
--victoria.username

Имя пользователя BasicAuth для подключения к VictoriaMetrics.

Значение по умолчанию: vision.

--victoria.verify

Проверка TLS-сертификатов при подключении к VictoriaMetrics. Значение false отключает проверку.

Значение по умолчанию: false.

--web.config.file

Путь к файлу веб-конфигурации компонента.

Значение по умолчанию: /opt/skala-r/etc/vision/server/vision_utilizer/web.yml.

--web.listen-address

Адрес и порт, которые слушает компонент.

Значение по умолчанию: localhost:17099.

--web.routes-table

Вывод маршрутов в виде таблицы.

Значение по умолчанию: false.

--web.shutdown-timeout

Период ожидания при плавном завершении работы HTTP-сервера.

Значение по умолчанию: 15s (15 секунд).

--web.telemetry-path

Путь для запроса метрик в формате Prometheus.

Значение по умолчанию: /metrics.