Сервис самодиагностики собирает информацию о метриках системы и проверяет работу всех компонентов ПК Интеллект X. Полученные данные сравниваются с показателями нормальной работы системы. При возникновении отклонений генерируются внутренние тревоги, которые можно отследить в web-интерфейсе (см. Просмотр метрик в сервисе самодиагностики).

Примеры отслеживаемых ошибок:

  • Высокая нагрузка на процессор (Hight CPU load).
  • Недостаточно оперативной памяти (Low OS virtual memory).
  • Есть связь с камерой, но нет данных от нее (ipint_no_samples).
  • Архив не работает (archive_source_not_activated).
  • Хранилище не справляется с нагрузкой на запись (archive_overloaded).
  • Нет записи в архив по событиям от детектора (archive_no_ping_from_detector).

В сервисе самодиагностики реализованы правила, которые позволяют отслеживать различные состояния системы. Полный список правил, доступный для конкретного сервера, можно посмотреть в web-интерфейсе сервиса самодиагностики в разделе Status → Rules: http://127.0.0.1:20040/rules, где:

  • alert – название правила;
  • expr – условие срабатывания правила; 
  • actions – действия правила;
  • summary – описание правила.

Примечание

Существуют правила, которые генерируют тревоги, но не выполняют никаких действий (actions). Такие правила помечены меткой disabled: true.

Примеры правил:

alertexpractionssummary
Low disk free space (logs)

Если свободное место на системном диске становится меньше 20 ГБ, удаляются все серверные логи, в том числе и архивированные, для освобождения пространства:

wmi_logical_disk_free_bytes{volume="C:"} / (1024 * 1024) < 20480


ACTION_CLEANUP_LOGS
Очистка директории логов при нехватке места на системном диске
Low disk free space (database)

Если свободное место на диске для базы данных становится меньше 15 ГБ, удаляются все события старше одной недели:

wmi_logical_disk_free_bytes{volume="C:"} / 
(1024 * 1024) < 15360
ACTION_CLEANUP_DB

Очистка базы данных Postgres при нехватке места на диске. При этом если свободное место на диске для базы данных становится меньше:

  • 10 ГБ – удаляются все события старше одного дня.
  • 5 ГБ – удаляются все события старше одного часа.
  • 3 ГБ – удаляются все события
archive_no_samples

Правило проверяет, поступают ли новые кадры в архив. Если новые кадры не приходят в архив в течение 5 минут, то перезапускается процесс архива:

((changes(ngp_archive_channel_state_change
{ep_name="hosts/SERVER/MultimediaStorage"}[5m]) 
+ ngp_archive_channel_current_state
{ep_name="hosts/SERVER/MultimediaStorage"}
 > 0) unless (changes(ngp_input_sample_counter
{ep_name="hosts/SERVER/MultimediaStorage"}[5m])
 > 0)) 
and ignoring(ep_name) ngp_fps{ep_name="hosts/SERVER/DeviceIpint"}
ACTION_RESTART_NGP_UNIT

Перезапуск службы архива, если в архив не приходят новые кадры

detector_no_sample

Правило отслеживает поступление кадров на детектор. Если новые кадры не поступают на детектор, то перезапускается службы детектора:

(absent(ngp_fps{ep_name="hosts/SERVER/AVDetector"}) *
scalar(ngp_fps{ep_name="hosts/SERVER/DeviceIpint"}) *
scalar(changes(ngp_fps
{ep_name="hosts/SERVER/AVDetector"}[3m])) * 
scalar((ngp_service_desired_state
{ep_name="hosts/SERVER/AVDetector"}
 == 0) + 1)) > 0
ACTION_RESTART_NGP_UNIT

Перезапуск службы детектора, если активный детектор не получает новые кадры

statistics_server_unhealthy

Если сервер статистики не обновляет счетчик задач или становится недоступным, службы статистики автоматически перезапускаются:

absent(changes(ngp_work_item_counter
{ep_name="hosts/SERVER/StatisticsServer"}[5m]))
or absent(up{job="node.SERVER"})
ACTION_RESTART_NGP_UNIT

Перезапуск службы статистики, если нет событий статистики


  • No labels