Перейти к основному содержимому

Мониторинг

GraDeLy реализует метрики, которые отражают общие показатели работы сервиса и отдельных модулей GraDeLy в контексте определенного источника. Для передачи метрик конечной системе используется Kafka: метрики публикуются в специальном топике, либо их публикует компонент Объединенный мониторинг Unimon (MONA) продукта Platform V Monitor (OPM) (далее по тексту – MONA).

Все метрики всегда формируются в разрезе источника данных и, в зависимости от метрики, добавляются дополнительные разрезы:

  • source — источник (мнемоника источника, эквивалентна наименованию);
  • channel — модуль GraDeLy, соответствующий потоку данных;
  • type — тип данных (класс Java);
  • ErrorClass — класс по классификатору ошибок.

Настройка​

Для интеграции с MONA заполните в конфигурационном файле prometheus.yaml параметры:

  • global.⁣scrape_interval — частота забора метрик (в секундах) по умолчанию;
  • scrape_configs.⁣metrics_path — HTTP путь до эндпоинта. Всегда равен /actuator/prometheus;
  • scrape_configs.⁣scrape_interval — частота забора метрик (в секундах);
  • scrape_configs.⁣static_configs.targets — массив, содержащий IP адреса и порты модулей GraDeLy, отправляющих метрики.

Метрики​

Прикладные метрики​

В таблице перечислены прикладные метрики приложения:

НазваниеОписаниеРазмерностьОсновные атрибуты
ru.gradely.metric:type=HCWorkerStatusТекущий статус воркерастрокаМетки метрики:
- app = "id модуля";
- gdl_version = "версия GraDeLy";
- unimonId = "идентификатор Unimon";
- rn = "имя ресурса Unimon".
grdl_module.replicationSlotLaggauge - Задержка слота репликации — показывает отставание между мастер-БД и репликой. Обновляется каждые 2 с.байтМетки метрики:
- app = "id модуля";
- gdl_version = "версия GraDeLy";
- unimonId = "идентификатор Unimon";
- rn = "имя ресурса Unimon".
grdl_module.offsetLaggauge - Задержка консьюмер-группы (Kafka) в количестве сообщений — разница между числом поступивших и обработанных сообщений в топике репликации. Обновляется каждые 2 с.штМетки метрики:
- app = "id модуля";
- gdl_version = "версия GraDeLy";
- unimonId = "идентификатор Unimon";
- rn = "имя ресурса Unimon".
grdl_module.opsgauge - Количество обработанных сообщений в секунду (не транзакций). Аналог TPS, рассчитанный по размеру ChangeVector.штМетки метрики:
- app = "id модуля";
- gdl_version = "версия GraDeLy";
- unimonId = "идентификатор Unimon";
- rn = "имя ресурса Unimon".
grdl_module.replicationMessageLatencygauge - Задержка (latency) — время передачи сообщения от main-воркера к standby-воркеру. Измеряется для каждого потока репликации.мсМетки метрики:
- app = "id модуля";
- gdl_version = "версия GraDeLy";
- unimonId = "идентификатор Unimon";
- rn = "имя ресурса Unimon".
grdl_module.tpsgauge - Количество транзакций в секундуштМетки метрики:
- app = "id модуля";
- gdl_version = "версия GraDeLy";
- unimonId = "идентификатор Unimon";
- rn = "имя ресурса Unimon".
grdl_module.captureCacheSizegauge - Текущий размер внутренней очереди/кеша при чтении из источникаштМетки метрики:
- app = "id модуля";
- gdl_version = "версия GraDeLy";
- unimonId = "идентификатор Unimon";
- rn = "имя ресурса Unimon".
grdl_module.applyCacheSizegauge - Текущий размер очереди/кеша на стороне приемникаштМетки метрики:
- app = "id модуля";
- gdl_version = "версия GraDeLy";
- unimonId = "идентификатор Unimon";
- rn = "имя ресурса Unimon".
grdl_module.kafkaConsumerQueueSizegauge - Текущий размер очереди/буфера при чтении из KafkaштМетки метрики:
- app = "id модуля";
- gdl_version = "версия GraDeLy";
- unimonId = "идентификатор Unimon";
- rn = "имя ресурса Unimon".
grdl_console_worker.countgauge - Количество доступных (READY) воркеров, видимых в консолиштМетки метрики:
- app = "id модуля";
- gdl_version = "версия GraDeLy";
- unimonId = "идентификатор Unimon";
- rn = "имя ресурса Unimon".
grdl_console_active_worker.countgauge - Количество доступных воркеров со статусом ActiveштМетки метрики:
- app = "id модуля";
- gdl_version = "версия GraDeLy";
- unimonId = "идентификатор Unimon";
- rn = "имя ресурса Unimon".
grdl_console_detached_worker.countgauge - Количество доступных воркеров со статусом DetachedштМетки метрики:
- app = "id модуля";
- gdl_version = "версия GraDeLy";
- unimonId = "идентификатор Unimon";
- rn = "имя ресурса Unimon".
grdl_console_error.countgauge - Счетчик ошибок консоли связанных с воркерами событий типа ERRORштМетки метрики:
- app = "id модуля";
- gdl_version = "версия GraDeLy";
- unimonId = "идентификатор Unimon";
- rn = "имя ресурса Unimon".
grdl_module.select_duration_msgauge - Длительность выполнения select-запросамсМетки метрики:
- version = "версия метрики";
- mon_system_ci = "КЭ ИТ-услуги системы мониторинга";
- it_service_ci = "КЭ ИТ-услуги системы источника";
- object_ci = "КЭ БД системы источника";
- replica_tech = "План А+".
grdl_module.request_count_totalcounter - Количество полученных запросов ТКДштМетки метрики:
- version = "версия метрики";
- mon_system_ci = "КЭ ИТ-услуги системы мониторинга";
- it_service_ci = "КЭ ИТ-услуги системы источника";
- object_ci = "КЭ БД системы источника";
- replica_tech = "План А+".
grdl_module.response_count_totalcounter - Количество обработанных запросов ТКДштМетки метрики:
- version = "версия метрики";
- mon_system_ci = "КЭ ИТ-услуги системы мониторинга";
- it_service_ci = "КЭ ИТ-услуги системы источника";
- object_ci = "КЭ БД системы источника";
- replica_tech = "План А+".
grdl_module.ddl_operations_totalcounter - Общее количество обработанных DDL-операцийштМетки метрики:
- app = "id модуля";
- gdl_version = "версия GraDeLy";
- unimonId = "идентификатор Unimon";
- rn = "имя ресурса Unimon".
grdl_module.ddl_operations_filteredcounter - Общее количество отфильтрованных DDL-операцийштМетки метрики:
- app = "id модуля";
- gdl_version = "версия GraDeLy";
- unimonId = "идентификатор Unimon";
- rn = "имя ресурса Unimon".
grdl_module.dataready_db_to_cdc_msgauge - Разница между временем извлечения инструментом CDC из слота БД и временем коммита транзакции в БДмсМетки метрики:
- version = "версия метрики";
- mon_system_ci = "КЭ ИТ-услуги системы мониторинга";
- it_service_ci = "КЭ ИТ-услуги системы источника";
- object_ci = "КЭ БД системы источника";
- metric_type = "тип метрики";
- metric_unit = "единица измерения метрики";
- replica_tech = "План А+".
grdl_module.heartbeatcounter - Текущее время (unixtime) — сигнализирует о работоспособности модулясМетки метрики:
- version = "версия метрики";
- mon_system_ci = "КЭ ИТ-услуги системы мониторинга";
- it_service_ci = "КЭ ИТ-услуги системы источника";
- object_ci = "КЭ БД системы источника";
- metric_type = "тип метрики";
- metric_unit = "единица измерения метрики";
- replica_tech = "План А+".

Результаты работы с секретами HashiCorp Vault​

Консоль​

Для отслеживания событий с секретами, относящихся к консоли, используется Platform V Monitor.

Воркер​

Для отслеживания событий с секретами, относящихся к воркеру, используется собственная система событий GraDeLy. События отображаются в Описании события во вкладке Процессы (подробнее в Руководстве пользователя интерфейса консоли управления).

События:

  • успешное чтение и проверка секрета: Successfully read <secret-name> secret;
  • неуспешное чтение и проверка секрета: Failed to read <secret-name> secret;
  • неуспешное применение секрета: Failed to commit <secret-name> secret;
  • неуспешное чтение и проверка секрета при включенной стратегии fail-fast: Failed to read <secret-name> secret, remainingAttempts=<remaining-attempts-count>;
  • неуспешное применение секрета при включенной стратегии fail-fast: Failed to commit <secret-name> secret, remainingAttempts=<remaining-attempts-count>;
  • секреты для БД применителя применены: Update target db connections;
  • запрос на отложенное обновление секретов БД источника принят: Lazy update source db connections.