VK Docs logo
Помощь
Обновлена 27 ноября 2025 г. в 14:21

Панель мониторинга

В TCF с версии 0.10.0 реализована возможность мониторинга через дашборд Grafana, который предоставляет информацию о ключевых метриках, таких как состояние Gateway, Destination и экземпляров Tarantool внутри дата-центра.

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

Для мониторинга используется стек Prometheus + Grafana: Prometheus выступает одновременно как серверный агент для сбора метрик и как база данных временных рядов для их хранения, а Grafana — как платформа визуализации.

Этот раздел содержит информацию о предварительных требованиях, доступных панелях мониторинга и их графиках, а также пример конфигурации дашборда для Prometheus.

Настройка дашборда

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

Чтобы настроить дашборд Grafana, необходимо:

  1. Установить и добавить в переменную окружения PATH следующие инструменты:
  • jsonnet – язык конфигурации;
  • jb – менеджер пакетов для jsonnet;
  • jsonnetfmt – инструмент для форматирования файлов .jsonnet и .libsonnet, если необходимо отформатировать эти файлы;
  • mage – инструмент для сборки (build system) на языке Go (альтернатива Make), предназначенный для написания скриптов сборки в виде Go-кода.
  1. Использовать Prometheus версии v3 или выше. Это связано с несовместимостью формата значения квантилей. Дополнительную информацию можно найти в документации Prometheus.
  2. Распаковать архив с дистрибутивом продукта, на котором будут развернуты кластеры и хранилище конфигурации, и архив с дистрибутивом TCF нужной версии для установки. Подробнее об этом читайте в разделе Распаковка архивов для установки.

Импорт дашборда

Импортировать в Grafana JSON-файл c конфигурацией можно через веб-интерфейс Grafana.

Для импорта:

  1. Откройте в браузере веб-интерфейс Grafana.
  2. Во вкладке Dashboards нажмите кнопку New и выберите пункт Import в выпадающем списке.
  3. Загрузите файл с дашбордом.
  4. Нажмите кнопку Load.

Просмотр дашборда

После импорта дашборд будет доступен на вкладке Dashboards в папке General. Для просмотра:

  1. На вкладке Dashboards откройте папку General и выберите нужный дашборд в выпадающем списке.
  2. Для просмотра графиков разверните раздел с нужными панелями мониторинга, например Replicators info.

Пример конфигурации дашборда для Prometheus

Добавьте задания в конфигурации Prometheus (scrape_configs). Для каждого кластера создаётся отдельная задача сбора метрик job, в котором в разделе static_configs.targets перечисляются адреса экземпляров – URI и порт метрик.

global:  scrape_interval: 5s  evaluation_interval: 5s scrape_configs:  - job_name: "cluster_a"    static_configs:      - targets:          - localhost:8081          - localhost:8082          - localhost:8083          - localhost:8084          - localhost:8085  - job_name: "cluster_b"    static_configs:      - targets:          - localhost:18081          - localhost:18082          - localhost:18083          - localhost:18084          - localhost:18085  - job_name: "replicators"    static_configs:      - targets:          - localhost:10081          - localhost:10082          - localhost:10181          - localhost:10182

Здесь:

  • global:
    • scrape_interval – интервал, с которым Prometheus будет собирать метрики (каждые 5 секунд);
    • evaluation_interval – интервал, с которым будет оцениваться состояние правил в Prometheus (5 секунд);
  • scrape_configs – список задач (jobs) для сбора метрик с различных сервисов или кластеров;
    • targets – список целей, каждая цель указывает на определённый сервис или экземпляр, с которого Prometheus должен запросить метрики;
    • cluster_a – список адресов сервисов из исходного кластера;
    • cluster_b – список адресов сервисов из целевого кластера;
    • replicators – список адресов репликаторов Gateway и Destination.

Конфигурация псевдонима (alias) экземпляра репликатора

Чтобы правильно отображать метрики репликаторов в Grafana, нужно задать псевдоним (alias) Gateway и Destination в конфигурации репликаторов данных, в секциях gateway.alias и destination.alias соответственно:

gateway:  alias: 'my_gateway_1_2'destination:  alias: 'my_destination_1_2'

Здесь:

  • gateway.alias — псевдоним для Gateway;
  • destination.alias — псевдоним для Destination.

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

Здесь приведены типовые проблемы, возникающие при работе с дашбордом, и способы их устранения.

  1. При отсутствии данных на графиках:
  • проверьте корректность выбранного источника данных (datasource) и значение переменных (replicators_job, cluster_a_job, cluster_b_job);

  • убедитесь, что доступны служебные метрики, в частности tnt_info_uptime.

  1. При появлении ошибки parse error: missing unit character in duration используйте Grafana версии 7.2 или выше.
  2. При появлении ошибки parse error: bad duration syntax "1m0" или аналогичной обновите Prometheus до более новой версии.

Доступные панели мониторинга и их графики

Панель Grafana

Имя графика

Метрика

Описание графика

Условия предупреждения

Replicators info

Events received from gateway

tcf_destination_recv_total

Общее количество событий, полученных от компонента Gateway

График в нуле — кластер простаивает или не работает репликация

Replicators info

Events read from source cluster

tcf_gateway_read_total

Суммарное количество записей, прочитанных с исходного кластера

Ошибок чтения > 10% от общего числа запросов чтения

Replicators info

Events sent to destination cluster (от gateway)

tcf_gateway_sent_total

Суммарное количество записей, отправленных на компонент Destination

Ошибок отправки > 10% от общего числа запросов отправки

Replicators info

Reading from source cluster errors

tcf_gateway_read_errors_total

Суммарное количество ошибок, возникших при чтении данных с исходного кластера

Ошибок > 10% от общего числа запросов чтения

Replicators info

Sending to destination errors

tcf_gateway_sent_errors_total

Суммарное количество ошибок, возникших при отправке данных на компонент Destination

Ошибок > 10% от общего числа запросов отправки

Replicators info

Events sent to destination cluster (от destination)

tcf_destination_push_total

Суммарное количество событий, отправленных в Destination

Ошибок > 10% от общего числа запросов отправки

Replicators info

Reading from gateway errors

tcf_destination_recv_errors_total

Общее количество ошибок при получении данных

Количество ошибок > 10% от общего числа запросов

Replicators info

Sending to destination errors

tcf_destination_push_errors_total

Количество ошибок, возникших в Destination при попытке отправить данные на целевой кластер

Ошибок > 10% от общего числа запросов отправки

Replicators info

Vclock signature received from gateway

tcf_destination_recv_vclock_signature

Сигнатура vclock, полученная от компонента Gateway

Нет

Replicators info

Vclock signature sent to destination cluster

tcf_destination_sent_vclock_signature

Сигнатура vclock, отправленная из Destination

Нет

Replicators info

Vclock signature received from limbo

tcf_gateway_limbo_vclock_signature

Сигнатура vclock из limbo (очереди транзакций)

Нет

Replicators info

Vclock signature sent from gateway

tcf_gateway_sent_vclock_signature

Сигнатура vclock, отправленная из Gateway в Destination

Нет

Source cluster info / Destination cluster info

Is cluster active

tcf_is_active

Активность текущего кластера: зелёный — активный, жёлтый — пассивный

Некорректное состояние кластеров (оба активны/пассивны или не совпадают статусы)

Source cluster info

Vclock signature sent from source cluster

tcf_src_vclock_signature

Сигнатура vclock, отправленная на Gateway из текущего кластера

Нет

Destination cluster info

Vclock signature received from destination cluster

tcf_dst_vclock_signature

Сигнатура vclock, применённая на целевом кластере

Нет

Go runtime of replicator services

Goroutines exist

go_goroutines

Количество активных горутин в программе

Превышение порогового значения

Go runtime of replicator services

Threads created

go_threads

Количество потоков, созданных процессом

Превышение порогового значения

Go runtime of replicator services

Memory in use

go_memstats_alloc_bytes

Объем выделенной памяти, которой владеет программа

Непрерывный рост памяти без снижения

Go runtime of replicator services

Memory allocation

go_memstats_alloc_bytes_total

Общее количество памяти, выделенной процессом с момента его старта

Рост без освобождения памяти

Go runtime of replicator services

Memory obtained from OS

go_memstats_sys_bytes

Общий объем памяти, полученный процессом от операционной системы

Рост без освобождения памяти

Go runtime of replicator services

Objects allocated

go_memstats_heap_objects

Текущее количество живых объектов в куче

Превышение порогового значения

Go runtime of replicator services

Mallocs

go_memstats_mallocs_total

Количество аллокаций объектов на куче было выделено за все время работы программы

Аномальный рост количества malloc

Go runtime of replicator services

Memory

go_memstats_frees_total

Общее количество освобождённой памяти

Стагнация или снижение при росте mallocs

Go runtime of replicator services

Pointer lookups

go_memstats_lookups_total

Количество обращений к указателям (pointer lookups)

Всплеск значений

Go runtime of replicator services

Heap memory in use

go_memstats_heap_alloc_bytes

Объем выделенной и используемой памяти на куче

Рост без снижения

Go runtime of replicator services

Heap memory obtained from OS

go_memstats_heap_sys_bytes

Объем памяти, выделенной процессом из ОС на куче

Нет

Go runtime of replicator services

Heap memory for spans (in-use)

go_memstats_heap_inuse_bytes

Количество байт в куче, которые заняты живыми объектами программы

Нет

Go runtime of replicator services

Heap memory for spans (idle)

go_memstats_heap_idle_bytes

Объем памяти в куче, не используемой в данный момент

Нет

Go runtime of replicator services

Heap memory released

go_memstats_heap_released_bytes

Объем памяти, освобожденной из кучи и возвращенной ОС

Нет

Go runtime of replicator services

Stack memory in use

go_memstats_stack_inuse_bytes

Объем памяти, выделенной на стеке

Нет

Go runtime of replicator services

Stack memory obtained from OS

go_memstats_stack_sys_bytes

Объем памяти, выделенный под стеки горутин

Нет

Go runtime of replicator services

mcache memory in use

go_memstats_mcache_inuse_bytes

Количество байт используется в локальных кешах для горутин

Нет

Go runtime of replicator services

mcache memory obtained from OS

go_memstats_mcache_sys_bytes

Объем памяти, выделенной процессом ОС для структур mcache

Нет

Go runtime of replicator services

mspan memory in use

go_memstats_mspan_inuse_bytes

Объем памяти, используемой mspans-структурами

Нет

Go runtime of replicator services

mspan memory obtained from OS

go_memstats_mspan_sys_bytes

Объем памяти, выделенной процессом ОС для mspans-структур

Нет

Go runtime of replicator services

Memory in use for profiling

go_memstats_buck_hash_sys_bytes

Объем памяти, используемой для хеширования и профилирования

Нет

Go runtime of replicator services

Memory in use for garbage collection

go_memstats_gc_sys_bytes

Объем памяти, используемой для работы со сборщиком мусора

Нет

Go runtime of replicator services

Other memory allocations

go_memstats_other_sys_bytes

Объем памяти, выделенной для других нужд системы

Нет

Go runtime of replicator services

Garbage collect duration (average)

go_gc_duration_seconds (avg)

Средняя продолжительность работы сборщика мусора

Время сборки мусора превышает порог

Go runtime of replicator services

Garbage collect duration

go_gc_duration_seconds (0.75 quantile)

75-й процентиль продолжительности работы сборщика мусора

Время сборки мусора превышает порог