Мониторинг системных метрик с помощью Grafana
Wialon Local предоставляет внутренние системные метрики в формате Prometheus. Вы можете использовать Prometheus для сбора этих метрик и Grafana для их визуализации с помощью предварительно настроенного шаблона дашборда. В этом руководстве описано, как включить сбор метрик, настроить Prometheus и Grafana и импортировать шаблон дашборда Wialon Local.
Предварительные требования
Перед началом работы убедитесь, что у вас есть:
- Работающий экземпляр Wialon Local.
- Prometheus, установленный (или готовый к установке).
- Grafana, установленная (или готовая к установке).
Рекомендуется устанавливать Prometheus и Grafana на отдельном сервере, а не на сервере Wialon Local. Запуск дополнительных сервисов на сервере Wialon Local может привести к снижению производительности и усложнить диагностику неполадок.
Шаг 1. Включение сбора метрик
Чтобы включить сбор системных метрик:
- В системе администрирования перейдите на вкладку Система и найдите раздел Настройки.
- Включите опцию Включить сервис метрик (последняя опция в разделе).
- Нажмите Сохранить.
- Перезапустите сервис.
После перезапуска Wialon Local предоставляет системные метрики в формате Prometheus по следующему адресу:
http://<адрес-сервера>/wialon_metrics
где <адрес-сервера> — это IP-адрес или доменное имя вашего сервера Wialon Local.
Вы можете проверить доступность метрик, открыв этот URL в браузере или с помощью команды curl:
curl http://<адрес-сервера>/wialon_metrics
Шаг 2. Установка и настройка Prometheus
Установите и настройте Prometheus на сервере, который вы выделили для мониторинга (рекомендуется отдельный сервер).
-
В файле конфигурации
prometheus.ymlдобавьте следующее задание для сбора метрик с Wialon Local: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.
-
Запустите Prometheus с файлом конфигурации:
./prometheus --config.file=prometheus.yml -
Убедитесь, что Prometheus собирает метрики, открыв веб-интерфейс Prometheus (по умолчанию
http://localhost:9090) и проверив раздел Status → Targets. Цельadfдолжна отображаться со статусом UP.
Шаг 3. Установка Grafana и добавление источника данных
Установите Grafana на тот же сервер, на котором запущен Prometheus.
- Скачайте и установите Grafana.
- Откройте веб-интерфейс Grafana (по умолчанию
http://localhost:3000). - Добавьте Prometheus в качестве источника данных:
- Перейдите в раздел Connections → Data sources.
- Нажмите Add data source и выберите Prometheus.
- В поле Prometheus server URL введите адрес вашего экземпляра Prometheus (например,
http://localhost:9090). - Нажмите Save & test, чтобы проверить подключение.
Дополнительную информацию см. в документации Grafana.
Шаг 4. Импорт дашборда
Предварительно настроенный шаблон дашборда Grafana доступен в виде JSON-файла. Чтобы его импортировать:
-
Скачайте JSON-шаблон дашборда по ссылке: local-dashboard-template.json.
-
В Grafana перейдите в раздел Dashboards → New → Import.
-
Нажмите Upload JSON file и выберите файл шаблона дашборда.
-
Выберите источник данных Prometheus, настроенный на предыдущем шаге.
-
Нажмите 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: Представляет кумулятивное значение, которое только увеличивается (например, общее количество обработанных отчетов). Счетчики сбрасываются в ноль при перезапуске сервиса.