Справочный центр Wialon

Мониторинг системных метрик с помощью Grafana

Wialon Local предоставляет внутренние системные метрики в формате Prometheus. Вы можете использовать Prometheus для сбора этих метрик и Grafana для их визуализации с помощью предварительно настроенного шаблона дашборда. В этом руководстве описано, как включить сбор метрик, настроить Prometheus и Grafana и импортировать шаблон дашборда Wialon Local.

Предварительные требования

Перед началом работы убедитесь, что у вас есть:

  • Работающий экземпляр Wialon Local.
  • Prometheus, установленный (или готовый к установке).
  • Grafana, установленная (или готовая к установке).

Шаг 1. Включение сбора метрик

Чтобы включить сбор системных метрик:

  1. В системе администрирования перейдите на вкладку Система и найдите раздел Настройки.
  2. Включите опцию Включить сервис метрик (последняя опция в разделе).
  3. Нажмите Сохранить.
  4. Перезапустите сервис.

После перезапуска Wialon Local предоставляет системные метрики в формате Prometheus по следующему адресу:

http://<адрес-сервера>/wialon_metrics

где <адрес-сервера> — это IP-адрес или доменное имя вашего сервера Wialon Local.

Вы можете проверить доступность метрик, открыв этот URL в браузере или с помощью команды curl:

Copied!
curl http://<адрес-сервера>/wialon_metrics

Шаг 2. Установка и настройка Prometheus

Установите и настройте Prometheus на сервере, который вы выделили для мониторинга (рекомендуется отдельный сервер).

  1. Скачайте и установите Prometheus.

  2. В файле конфигурации prometheus.yml добавьте следующее задание для сбора метрик с Wialon Local:

    Copied!
    scrape_configs:
      - job_name: "adf"
        metrics_path: /wialon_metrics
        static_configs:
          - targets: ["<адрес-wialon-local>"]
    

    Замените <адрес-wialon-local> на IP-адрес или доменное имя вашего сервера Wialon Local (например, 192.168.1.100 или wialon.yourcompany.com). Поскольку эндпоинт проксируется через nginx на стандартном HTTP-порту, указывать номер порта не нужно.

    Дополнительную информацию см. в документации Prometheus.

  3. Запустите Prometheus с файлом конфигурации:

    Copied!
    ./prometheus --config.file=prometheus.yml
    
  4. Убедитесь, что Prometheus собирает метрики, открыв веб-интерфейс Prometheus (по умолчанию http://localhost:9090) и проверив раздел Status → Targets. Цель adf должна отображаться со статусом UP.

Шаг 3. Установка Grafana и добавление источника данных

Установите Grafana на тот же сервер, на котором запущен Prometheus.

  1. Скачайте и установите Grafana.
  2. Откройте веб-интерфейс Grafana (по умолчанию http://localhost:3000).
  3. Добавьте Prometheus в качестве источника данных:
    • Перейдите в раздел Connections → Data sources.
    • Нажмите Add data source и выберите Prometheus.
    • В поле Prometheus server URL введите адрес вашего экземпляра Prometheus (например, http://localhost:9090).
    • Нажмите Save & test, чтобы проверить подключение.

Дополнительную информацию см. в документации Grafana.

Шаг 4. Импорт дашборда

Предварительно настроенный шаблон дашборда Grafana доступен в виде JSON-файла. Чтобы его импортировать:

  1. Скачайте JSON-шаблон дашборда по ссылке: local-dashboard-template.json .

  2. В Grafana перейдите в раздел DashboardsNewImport.

  3. Нажмите Upload JSON file и выберите файл шаблона дашборда.

  4. Выберите источник данных Prometheus, настроенный на предыдущем шаге.

  5. Нажмите Import.

Дополнительную информацию см. в документации Grafana.

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

Доступные метрики

В таблице ниже перечислены все системные метрики, предоставляемые Wialon Local. Информацию о типах метрик см. в разделе Типы метрик.

Метрики сервиса и процессов

Метрика Тип Описание
adf_process_start_time Gauge Время запуска сервиса Wialon Local (временная метка Unix в секундах).
adf_process_pid Gauge Идентификатор процесса (PID) запущенного сервиса Wialon Local.
adf_service_status Gauge Статус сервиса: 1 — запущен, 0 — остановлен.
adf_process_cpu_time_seconds Gauge Время процессора, затраченное на выполнение процесса (режим ядра и пользовательский режим).
adf_process_mem_pages_in_mem Gauge Количество страниц процесса в физической памяти.
adf_process_mem_vmem_used Gauge Объем виртуальной памяти, используемой процессом (в байтах).
adf_mem_appmem_used Gauge Количество байтов, используемых памятью приложения.
adf_mem_vmem_used Gauge Количество байтов, используемых в качестве виртуальной памяти (без учета метаданных).

Метрики базы данных и хранилища

Метрика Тип Описание
adf_storage_msgs_rw_count Counter Общее количество сообщений, записанных в базу данных или прочитанных из нее.
adf_storage_critical_errors Counter Общее количество критических ошибок, возвращенных операциями хранилища.
adf_sync_server_msgs_flushed_to_fs Counter Количество сообщений, сброшенных в файловую систему для резервного сервера. Когда сервер синхронизации недоступен, сообщения временно хранятся на диске и сбрасываются после восстановления доступности сервера.

Метрики пула потоков и очереди событий

Метрика Тип Описание
adf_threads_pool_active Gauge Количество активных потоков в глобальном пуле потоков.
adf_threads_pool_max Gauge Максимальный размер глобального пула потоков. Настраивается через переменную окружения ADF_MAX_THREADS_COUNT (по умолчанию: 50).
adf_events_queue_size Gauge Количество событий в очереди выполнения. Большинство событий в системе (команды, зарегистрированные сообщения и другие) проходят через эту очередь. Минимальный размер очереди указывает на быструю обработку. Растущая очередь указывает на снижение производительности.

Метрики выполнения скриптов

Метрика Тип Описание
adf_script_code_executions Counter Общее количество выполнений скриптов за 10-минутное окно. Большинство внешних событий (например, API-запросы) обрабатываются через скрипты. Эта метрика может служить индикатором нагрузки на систему.
adf_script_long_exec_number Gauge Количество скриптов, время выполнения которых превышает пороговое значение. Пороговое значение настраивается через переменную окружения ADF_SCRIPT_LONG_EXEC_DETECTION_TIME (по умолчанию: 600 секунд).

Метрики веб-запросов и сессий

Метрика Тип Описание
adf_web_ajax_requests_duration_milliseconds Counter Общая длительность обработанных AJAX-запросов (в миллисекундах).
adf_web_active_sessions Gauge Количество активных веб-сессий.

Метрики отчетов и уведомлений

Метрика Тип Описание
adf_reports_count Counter Общее количество обработанных отчетов.
adf_reports_duration_milliseconds Counter Общая длительность обработки отчетов (в миллисекундах).
adf_notifications_count Counter Общее количество обработанных действий уведомлений.
adf_notifications_duration_milliseconds Counter Общая длительность обработки действий уведомлений (в миллисекундах).

Метрики объектов и оборудования

Метрика Тип Описание
adf_unit_to_tcp_conn_bindings Counter Общее количество привязок объектов к TCP-соединениям. Объекты, передающие данные, устанавливают привязки к соединениям.
adf_unit_to_udp_conn_bindings Counter Общее количество привязок объектов к UDP-соединениям. Объекты, передающие данные, устанавливают привязки к соединениям.
adf_unit_commands_executions Counter Общее количество выполненных команд объектов.
adf_retranslator_msgs_sent Counter Общее количество сообщений, отправленных сервисом ретрансляции.

Метрики заданий

Метрика Тип Описание
adf_jobs_completed Counter Общее количество завершенных заданий.

Типы метрик

Метрики Wialon Local используют два типа метрик Prometheus:

  • Gauge: Представляет значение, которое может увеличиваться или уменьшаться (например, количество активных сессий или использование памяти). Значения типа Gauge отражают текущее состояние в определенный момент времени.

  • Counter: Представляет кумулятивное значение, которое только увеличивается (например, общее количество обработанных отчетов). Счетчики сбрасываются в ноль при перезапуске сервиса.

Устранение неполадок

Таргет Prometheus показывает статус DOWN

Проверьте сетевое соединение между сервером, на котором запущен Prometheus, и сервером Wialon Local. Убедитесь, что параметр metrics_path в prometheus.yml установлен в значение /wialon_metrics, а значение targets содержит правильный адрес сервера Wialon Local. Убедитесь, что HTTP-порт сервера Wialon Local (по умолчанию: 80 или 443) не заблокирован файерволом.

Дашборд Grafana показывает «No data»

Убедитесь, что источник данных Prometheus правильно настроен в Grafana (ConnectionsData sourcesPrometheus). Проверьте, что экземпляр Prometheus запущен и что таргет adf имеет статус UP в Prometheus (StatusTargets). Убедитесь, что при импорте дашборда был выбран правильный источник данных.

Размер очереди событий непрерывно растет

Непрерывный рост adf_events_queue_size указывает на то, что система не успевает обрабатывать события. Проверьте использование процессора и памяти на сервере. Сверьте аппаратное обеспечение сервера с техническими требованиями. Обратитесь в техническую поддержку, если проблема сохраняется.

Если вы заметили ошибку в тексте, пожалуйста, выделите её и нажмите Ctrl+Enter.

Сообщить об ошибке

Ваше сообщение отправлено. Спасибо!

Произошла ошибка при отправке формы