Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Section
Column
width45%50%
Panel
titleНа странице:

Table of Contents

Column

...



Общие сведения

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

С помощью сервиса можно:

  • просматривать системные метрики сервера;
  • анализировать использование ресурсов (CPU, память);
  • контролировать работу камер и детекторов;
  • отслеживать состояние архива;
  • выполнять запросы к метрикам с использованием языка запросов Prometheus (PromQL).

Метрики могут отображаться:

  • в табличном виде (текущие значения);
  • в виде графиков за выбранный период времени.

Доступ к сервису самодиагностики

Для перехода к интерфейсу мониторинга нужно:

  1. Открыть веб-браузер.
  2. В адресной строке ввести
  3. Перейти в web-интерфейс сервиса самодиагностики
  4. : http://127.0.0.1:20040/.
  5. Нажать клавишу Enter.

После этого откроется веб-интерфейс сервиса самодиагностики.

Интерфейс и выполнение запросов

Интерфейс позволяет выполнять запросы к метрикам и анализировать их значения.

Для выполнения запроса нужно:

  1. Ввести метрику в поле Enter expression.
    Image Modified

  2. Выбрать необходимую метрику в списке (1) или ввести запрос самостоятельно в поле Expression.

    МетрикаОписание
  3. Info
    titleПримечание

    Для просмотра доступных метрик в поле Enter expression нужно нажать на кнопку Image Added →  Explore metrics.

  4. При необходимости задать временной диапазон.

  5. Нажать на кнопку Execute.

Поддерживается выполнение сложных запросов с использованием PromQL.

Основные возможности запросов

Основные возможности при выполнении запросов приведены в таблице:

ВозможностиОписание
Использование нескольких метрик

В одном запросе можно использовать несколько метрик

Фильтрация по параметрам

Метрики можно фильтровать по параметрам (лейблам) с помощью фигурных скобок.

Пример:

Code Block
languagego
ngp_fps{ep_name=~"hosts/TEST/DeviceIpint.2/SourceEndpoint.video:0:0"}

В этом случае отображаются значения FPS только для указанного источника.

Применение логических и арифметических операторов для поиска аномалий

В запросах можно применять:

  • арифметические операторы;

  • логические операторы;

  • функции Prometheus.

Пример:

Code Block
languagego
ngp_fps < 17

Этот запрос позволяет найти источники, у которых частота кадров ниже 17 FPS. Полный список логических и арифметических операторов указан в официальной документации Prometheus.

Просмотр результатов запроса

Результаты запроса можно просматривать в двух режимах:

  • Table:
    • отображает текущие значения метрик в табличном виде;

    • показывает актуальные значения метрик;

    • обновляется при изменении временного диапазона.
      Image Added

  • Graph:
    • позволяет строить график изменения метрик во времени;
    • можно задать период времени для построения графика;

    • определить конечную точку графика;

    • задать интервал между точками данных;
    • дополнительно можно включить режим накопления, при котором область под графиком закрашивается (переключатели Unstacked/Stacked).
      Image Added

Основные метрики сервиса

Ниже приведены основные метрики, доступные в сервисе самодиагностики.

МетрикаОписание
Метрики состояния сиcтемы
ngp_cpu_total_usageЗагрузка центрального процессора сервера
Метрики архива
ngp_archive_channel_fpsЧастота кадров всех камер при записи в архив
ngp_archive_volume_sizeТекущий общий размер архива (в байтах)
Метрики камер и видеоаналитики
ngp_fpsЧастота кадров всех камер, детекторов и декодеров
ngp_people_countПоследнее зафиксированное количество людей в кадре детектором Детектор подсчета толпы TV
ngp_errors

Количество ошибок в работе детекторов:

ngp_skipped_pp

Количество пропущенных кадров детектором Детектор подсчета толпы TV из-за нехватки ресурсов для обработки

Метрики состояния системы
ALERTS_FOR_STATE
Найденные и

...

устранённые неисправности системы. Содержит параметр alertname с типом проблемы.
Code Block
languagego
titleПример
ALERTS_FOR_STATE{alertname="ipint_is_not_activated",ep_name="hosts/Server1/DeviceIpint.99",instance="127.0.0.1:20108",job="ngp_exporter",ngp_alert="true"}

...

Расшифровка значений alertname (см. Общие сведения о сервисе самодиагностики) для метрики ALERTS_FOR_STATE:

  • low_os_memory

...

  • недостаточно оперативной памяти

...

  • .
  • ipint_is_not_activated

...

  • есть связь с

...

  • камерой, но нет от неё данных

...

  • .
  • no_samples_in_detector

...

  • — отсутствуют события от детектора

...

  • .
  • restart_services_when_archive_source_not_activated

...

  • не работает

...

  • запись в архив.
  • restart_services_when_no_samples_in_archive

...

  • частота кадров при записи в архив равна 0

...

  • .
  • restart_services_when_no_ping_from_detector_to_archive

...

  • нет записи в архив по событию от детектора

...

  • .
  • logs_disk_space_is_low /

...

  • db_disk_space_is_low

...

  • — недостаточно места на системном диске

...

Метрики состояния дисков (SMART)
smartctl_device_smart_status

Общий статус состояния диска. Основные значения метрики:

  • 1 – диск находится в исправном состоянии;
  • 0 – диск сообщил о неисправности и уже вышел из строя, либо прогнозирует отказ в течение следующих 24 часов

В таких случаях рекомендуется проверить:

  • логи экспортера метрик;
  • права доступа к устройствам;
  • корректность работы smartctl.
smartctl_device_attribute

Содержит детальные SMART-атрибуты дисков. Существует несколько типов значений:

  • raw – фактическое значение атрибута без интерпретации;
  • thresh – пороговое значение, при превышении которого атрибут считается проблемным. Если значение raw превышает thresh, это указывает на потенциальную неисправность устройства;
  • value – текущее нормализованное значение атрибута. Обычно находится в диапазоне от 1 до 100 или 1 до 253. Используется для представления состояния устройства в удобной форме;
  • worst – наихудшее нормализованное значение, зафиксированное за время работы устройства. Используется для анализа ухудшения состояния диска.

Пример интерпретации:

Если идет анализ метрики smartctl_device_attribute, значения атрибутов могут выглядеть так:

  • raw: 15 (фактическое количество переназначенных секторов);
  • thresh: 50 (порог, при котором диск считается ненадежным);
  • value: 55 (текущий нормализованный статус атрибута);
  • worst: 50 (наихудший зафиксированный статус атрибута).

Использование в мониторинге:

  • raw: используется для детального анализа и диагностики;
  • thresh: критически важно для настройки предупреждений;
  • value и worst: используются для мониторинга состояния устройства

В запросе допускается:

  1. Использование нескольких метрик.
  2. Использование выражений для поиска проблем. Например, запрос вида ngp_fps < 17 выдаст все метрики, где fps был меньше 17. Полный список логических и арифметических операторов указан в официальной документации Prometheus.
  3. Фильтрация по любому из параметров. Например,  данный запрос выдаст значения fps только для указанного источника:

    Code Block
    ngp_fps{ep_name=~"hosts/TEST/DeviceIpint.2/SourceEndpoint.video:0:0"}

...

На вкладке Console будут выданы возможные значения всех элементов на момент выполнения запроса.
Image Removed
При задании даты и времени в календаре данные обновятся.
Image Removed
Для построения графика необходимо перейти на вкладку Graph. В поле 1 задается временной интервал графика, в поле 2 его конечная точка, в 3 – интервал между точками данных. Для закрашивания графика необходимо установить флажок stacked (4).
Image Removed

Примеры полезных запросов для ОС Windows

  1. График загрузки CPU по аналогии с Системным монитором Windows(аналог Системного монитора):
    Code Block
    languagego
    sum by (process_id) (100 / scalar(wmi_cs_logical_processors) * (irate(wmi_process_cpu_time_total{process="AppHost"}[10m]))) or ngp_cpu_total_usage
  2. График использования Использование оперативной памяти процессами AppHost и общий объем памятиобъём:
    Code Block
    languagego
    sum by (process_id) (avg_over_time(wmi_process_working_set{process="AppHost"}[5m])) / 1024 or avg_over_time(wmi_os_virtual_memory_bytes[5m]) / 1024
  3. Процент использования оперативной памяти:
    Code Block
    languagego
    100.0 - 100 * avg_over_time(wmi_os_virtual_memory_free_bytes[5m]) / avg_over_time(wmi_os_virtual_memory_bytes[5m])

Примеры полезных запросов для ОС Linux

  1. График суммарного использования Суммарное использование оперативной памяти процессами AppHost:
    Code Block
    languagego
    sum by (groupname) (namedprocess_namegroup_memory_bytes{memtype="resident"})
  2. Процент использования оперативной памяти:
    Code Block
    languagego
    100 - node_memory_MemAvailable_bytes * 100 / node_memory_MemTotal_bytes
  3. График загрузки CPU процессами AppHost (в процентах %):
    Code Block
    languagego
    sum by (object_id) (rate(namedprocess_namegroup_cpu_seconds_total{groupname="AppHost"}[1m])) * 100
    График загрузки
  4. Общая загрузка CPU (в процентах %):
    Code Block
    languagego
    100 * avg without (cpu) (1 - rate(node_cpu_seconds_total{mode="idle"}[1m]))
  5. График использования оперативной Использование памяти процессами AppHost для определения утечки памятивыявления утечек:
    Code Block
    languagego
    namedprocess_namegroup_memory_bytes{object_id=~"APP_HOST.*",memtype="proportionalResident"}