Метрики Zabbix
Введение
Отслеживать состояние системы Accelera можно с помощью системы мониторинга Zabbix.
Мониторинг производится путем отправки метрик в Zabbix самим процессом Accelera через Zabbix Sender протокол. Агент в этом взаимодействии не предусмотрен. Приложение отправляет собственные метрики, характерные для каждого сервиса (настраивается индивидуально). Используются возможности Zabbix Sender API для отправки данных на сервер Zabbix.
Настройка метрик
Чтобы сервисы Accelera начали отправлять данные в Zabbix необходимо настроить переменные среды для каждого сервиса.
| Название | Описание/значение |
|---|---|
| ENABLE_METRICS | true |
| ZABBIX_ENABLE | true |
| ZABBIX_HOST | Хост системы Zabbix, куда будет производится отправка |
| ZABBIX_PORT | Порт Zabbix, например 10051 |
| ZABBIX_TARGET_HOST | Имя хоста, откуда отправляются данные. |
| ZABBIX_PREFIX | (Опционально) Переписать префикс имен метрики по умолчанию. Например для flows_backoffice можно перезаписать на accelera_backoffice. |
| ZABBIX_SEND_INTERVAL | (Опционально) Интервал отправки данных в zabbix, в секундах (по умолчанию - 60) |
Сервисы
Для каждого сервиса имеется как свой уникальный набор отслеживаемых метрик, так и повторяющиеся для всех.
Набор метрик по сервисам перечислен далее.
Все отслеживаемые параметры передаются в Items типа Zabbix trapper в систему Zabbix.
flows_backoffice
| Название метрики | Описание | Значение | Уровень | Граничные значения |
|---|---|---|---|---|
| flows_backoffice.connections.operational_db | Статус соединения с операционной БД. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_backoffice.connections.broker | Статус соединения с брокером RabbitMQ. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_backoffice.connections.analytics_db | Статус соединения с аналитической БД. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_backoffice.connections.redis | Статус соединения с Redis. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_backoffice.connections.api | Статус работы API | 1 - API работает, 0 - в обратном случае. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_backoffice.connections.api_responses_5xx | Количество ответов с 5xx ошибками. | Кол-во ответов. | WARN | WARN - 2 на протяжении 1 минутыCRITICAL - >10 на протяжении 1 минуты |
| flows_backoffice.connections.api_requests_inc | Количество входящих запросов API. | Кол-во запросов. | INFO | Не применимо |
| flows_backoffice.connections.api_responses_4xx | Количество ответов с 4xx ошибками. | Кол-во ответов. | INFO | Не применимо |
flows_bulk
| Название метрики | Описание | Значение | Уровень | Граничные значения |
|---|---|---|---|---|
| flows_bulk.connections.broker | Статус соединения с брокером RabbitMQ. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_bulk.connections.analytics_db | Статус соединения с аналитической БД. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_bulk.runtime.data_write_errors | Ошибки записи аналитических данных. | Кол-во ошибок за период. | CRITICAL | WARN - 2 на протяжении 2х минутCRITICAL - >2 на протяжении 2х минут |
| flows_bulk.runtime.fs_errors | Ошибки работы файловой системы | Кол-во ошибок с файловой системой за период. | CRITICAL | WARN - 2 на протяжении 2х минутCRITICAL - >2 на протяжении 2х минут |
| flows_bulk.analytics_rows.log_table | Количество строк, записанных в таблицу log_table | Кол-во строк. | INFO | WARN - 0 на протяжении 5 минут |
| flows_bulk.analytics_rows.tags | Количество строк, записанных в таблицу tags | Кол-во строк. | INFO | Не применимо |
| flows_bulk.analytics_rows.accelera_api | Количество строк, записанных в таблицу accelera_api | Кол-во строк. | INFO | Не применимо |
| flows_bulk.analytics_rows.ad_tag | Количество строк, записанных в таблицу ad_tag | Кол-во строк. | INFO | Не применимо |
| flows_bulk.analytics_rows.decision_tables_results | Количество строк, записанных в таблицу decision_tables_results | Кол-во строк. | INFO | Не применимо |
| flows_bulk.analytics_rows.sync_engine_requests | Количество строк, записанных в таблицу sync_engine_requests | Кол-во строк. | INFO | Не применимо |
| flows_bulk.analytics_rows.segments_log | Количество строк, записанных в таблицу segments_log | Кол-во строк. | INFO | WARN - 0 на протяжении 1 суток |
flows_frontend
В основе работы frontend модуля лежит nginx. Для предоставления метрик используется встроенный модуль. Для получения метрик нужно обратиться на url /metrics.
Пример ответа:
Active connections: 1
server accepts handled requests
2 2 17
Reading: 0 Writing: 1 Waiting: 0 flows_timers
| Название метрики | Описание | Значение | Уровень | Граничные значения |
|---|---|---|---|---|
| flows_timers.connections.operational_db | Статус соединения с операционной БД. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_timers.connections.broker | Статус соединения с брокером RabbitMQ. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_timers.runtime.timers_errors | Ошибки работы с таблицей таймеров в БД. | Кол-во ошибок. | CRITICAL | WARN - 1 на протяжении 5 минутCRITICAL - >1 на протяжении 5 минут |
| flows_timers.runtime.event_sent_errors | Ошибки публикации событий-таймеров. | Кол-во ошибок. | CRITICAL | WARN - 1 на протяжении 5 минутCRITICAL - >1 на протяжении 5 минут |
| flows_timers.runtime.event_sent_total | Количество отправленных событий-таймеров. | Кол-во событий. | WARN | WARN - 0 на протяжении 1 часа |
| flows_timers.runtime.timers_inc_total | Количество входящих таймеров | Кол-во таймеров. | INFO | Не применимо |
flows_actions
| Название метрики | Описание | Значение | Уровень | Граничные значения |
|---|---|---|---|---|
| flows_actions.connections.operational_db | Статус соединения с операционной БД. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_actions.connections.broker | Статус соединения с брокером RabbitMQ. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_actions.connections.redis | Статус соединения с Redis. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_actions.runtime.actions_inc | Количество входящих задач для выполнения действий. | Кол-во задач. | INFO | Не применимо |
| flows_actions.runtime.actions_errors | Ошибки выполнения действий | Кол-во ошибок. | WARN | WARN - >1 на протяжении 5 минут |
flows_engine
| Название метрики | Описание | Значение | Уровень | Граничные значения |
|---|---|---|---|---|
| flows_engine.connections.operational_db | Статус соединения с операционной БД. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_engine.connections.broker | Статус соединения с брокером RabbitMQ. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_engine.connections.redis | Статус соединения с Redis. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_engine.runtime.flows_started_count | Количество запущенных flow | Кол-во flows. | INFO | Не применимо |
| flows_engine.runtime.flows_paused_count | Количество приостановленных flow | Кол-во flows. | INFO | Не применимо |
| flows_engine.runtime.events_inc | Количество входящих событий | Кол-во событий per engine | INFO | Не применимо |
| flows_engine.runtime.events_processed | Количество событий, которые были обработаны в сценариях | Кол-во событий per engine | INFO | Не применимо |
| flows_engine.runtime.events_errors | Количество событий, обработка которых вызвала ошибку | Кол-во событий per engine | WARN | WARN - >1 за 5 минут |
flows_segments
| Название метрики | Описание | Значение | Уровень | Граничные значения |
|---|---|---|---|---|
| flows_segments.connections.operational_db | Статус соединения с операционной БД. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_segments.connections.source_db | Статус соединения с БД-источником. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_segments.connections.broker | Статус соединения с брокером RabbitMQ. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_segments.connections.redis | Статус соединения с Redis. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| flows_segments.runtime.segments_active | Количество активных сегментов | Кол-во сегментов. | INFO | Не применимо |
| flows_segments.runtime.connection_pool | Текущий пул соединений | Кол-во подключений. | INFO | Не применимо |
| flows_segments.runtime.segments_processing_errors | Количество ошибок выполнения сегментов | Кол-во ошибок. | WARN | WARN - >1 на протяжении 2х минут |
sql_adapter
| Название метрики | Описание | Значение | Уровень | Граничные значения |
|---|---|---|---|---|
| sql_adapter.connections.source_db | Статус соединения с БД-источником. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| sql_adapter.connections.broker | Статус соединения с брокером RabbitMQ. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| sql_adapter.connections.redis | Статус соединения с Redis. | 1 - соединение установлено, 0 - соединение отсутствует. | CRITICAL | WARN -CRITICAL - 0 на протяжении 2х минут |
| sql_adapter.runtime.events_received | Количество полученных событий | Кол-во событий. | INFO | Не применимо |
| sql_adapter.runtime.events_sent | Количество отправленных событий | Кол-во событий. | WARN | WARN - >15000 на протяжении 1 минуты |