Метрики Tarantool | Clusters_Federation

Метрики Tarantool

Общая статистика

Тип метрик: gauge.

Эти метрики помогают отслеживать текущее состояние экземпляра Tarantool, включая его время с момента запуска, режим доступа и системное время.

  • tnt_cfg_current_time – системное время экземпляра в формате Unix timestamp. Используется для проверки синхронизации времени между серверами. Расхождение во времени может вызвать проблемы с репликацией и логами;

  • tnt_info_uptime – время работы экземпляра в секундах. Позволяет выявить незапланированные перезапуски. Регулярный сброс значения может свидетельствовать о сбоях;

  • tnt_read_only – режим доступа экземпляра. Используется для контроля режима работы экземпляра. Если мастер-сервер перешёл в read-only, это приводит к отказу в записи.

Общая статистика использования памяти

Тип метрик: gauge.

  • tnt_info_memory_data – объем памяти в байтах, используемый для хранения данных (кортежей). Резкое увеличение значения метрики может указывать на рост объёма данных;

  • tnt_info_memory_index – объем памяти в байтах, используемый для индексации данных. Увеличение значения метрики может указывать на увеличение количества индексов или их размера;

  • tnt_info_memory_lua – объем памяти в байтах, используемый средой выполнения Lua-кода; Резкое увеличение значения метрики может свидетельствовать о не оптимизированном коде;

  • tnt_info_memory_cache – объем памяти в байтах, используемый для кэширования данных в движке базы данных vinyl;

  • tnt_info_memory_net – объем памяти в байтах, используемый для буферов сетевого ввода/вывода. Метрика важна для отслеживания потребления памяти, связанного с сетевыми операциями, такими как передача данных между узлами в кластере;

  • tnt_info_memory_tx – объем памяти в байтах, используемый активными транзакциями. Эта метрика помогает отслеживать количество памяти, потребляемое в процессе выполнения транзакций;

Статистика использования памяти для распределения slab

Распределение slab – это ключевой механизм хранения кортежей в Tarantool. Метрики этого раздела помогают отслеживать:

  • суммарное использование памяти;

  • фрагментацию памяти;

  • доступную и фактически занятую память.

Тип метрик: gauge.

Доступная память

  • tnt_slab_quota_size – максимальный объем памяти в байтах, который может быть выделен для хранения кортежей и индексов (вся память под slab);

  • tnt_slab_arena_size – общий объем памяти в байтах, используемый для кортежей и индексов. Включает в себя выделенные распределения slab, свободные в текущий момент;

  • tnt_slab_items_size – общий объем памяти в байтах, выделенный только для хранения кортежей (без учета индексов). Не используется для индексов.

Использование памяти

  • tnt_slab_quota_used – общий объем памяти, действительно использованной из доступного лимита (quota_size);

  • tnt_slab_arena_used – эффективный объем памяти в байтах, используемый для кортежей и индексов. Не включает в себя выделенные распределения slab, свободные в текущий момент;

  • tnt_slab_items_used – объем памяти, который используется только кортежами (без учета индексов).

Потребление памяти (в процентах)

  • tnt_slab_quota_used_ratio – соотношение quota_used / quota_size;

  • tnt_slab_arena_used_ratio – соотношение arena_used / arena_size;

  • tnt_slab_items_used_ratio – соотношение items_used / items_size. Это распределения slab, которые используются только для кортежей.

Статистика использования памяти в конкретных спейсах

Все метрики, за исключением tnt_space_index_bsize, имеют два тега:

  • name – имя спейса;

  • engine – движок базы данных, используемый для этого спейса.

Тип метрик: gauge.

  • tnt_space_bsize{name,engine} – объем памяти в байтах, который занимает спейс, включая все кортежи и ключи индексов;

  • tnt_space_index_bsize{name,index_name} – объем памяти в байтах, занятый под индексы. Метрика также имеет тег index_name – название индекса;

  • tnt_space_total_bsize{name,engine} – суммарный объем памяти в байтах для спейса, включая все кортежи, ключи индексов и индексы (суммарное значение tnt_space_bsize + tnt_space_total_bsize);

  • tnt_vinyl_tuples{name,engine} – количество кортежей для спейса на движке vinyl. Эта метрика отключена по умолчанию и может быть включена только при настройке глобальной переменной: rawset(_G, 'include_vinyl_count', true).

Статистика сетевой активности

Мониторинг нагрузки сети, пиков использования и падения трафика. Метрики имеют тег thread, который отображает сетевую статистику для каждого потока.

Трафик

Тип метрик: counter.

  • tnt_net_sent_total – исходящий трафик в байтах;

  • tnt_net_received_total – входящий трафик в байтах.

Сетевые соединения

  • tnt_net_connections_total – общее количество входящих сетевых соединений с момента запуска экземпляра. Тип метрики: counter;

  • tnt_net_connections_current – текущее количество входящих сетевых соединений. Тип метрики: gauge.

Сетевые запросы

  • tnt_net_requests_total – общее количество входящих сетевых запросов с момента запуска экземпляра. Тип метрики: counter;

  • tnt_net_requests_current – текущее количество входящих сетевых запросов в обработке. Может быть ограничено параметром конфигурации базы данных net_msg_max. Тип метрики: gauge;

  • tnt_net_requests_in_progress_total – общее количество сетевых запросов, обработанных потоком процессора транзакций (TX thread). Тип метрики: counter;

  • tnt_net_requests_in_progress_current – количество сетевых запросов, которые обрабатывает поток процессора транзакций (TX thread) в текущий момент. Тип метрики: gauge;

  • tnt_net_requests_in_stream_total – общее количество сетевых запросов, помещенных в очереди стримов за все время потоком процессора транзакций (TX thread). Тип метрики: counter;

  • tnt_net_requests_in_stream_current – количество сетевых запросов, ожидающих обработки в очередях стримов в текущий момент. Тип метрики: gauge.

Информация о файберах

Тип метрик: gauge.

  • tnt_fiber_amount – общее количество активных файберов. В статистике учитываются только файберы, которые ещё не завершились. Завершённые файберы, уже очищенные сборщиком мусора, в эту метрику не попадают;

  • tnt_fiber_csw – количество переключений контекста для всех активных файберов. Метрика отслеживает только файберы, которые ещё не завершились, поэтому она может становиться немонотонной, если файбер завершился и был очищен до того, как попал в статистику;

  • tnt_fiber_memalloc – общий объем памяти в байтах, выделенный под файберы;

  • tnt_fiber_memused – объем памяти в байтах, используемый файберами.

Статистика входящих запросов (по типу запросов)

Тип метрики: counter.

  • tnt_stats_op_total{operation} – общее количество запросов данного типа с момента запуска экземпляра. Метрика имеет тег operation – тип входящего запроса, приходящего по бинарному протоколу. Возможные типы запроса:

    • auth – запросы на аутентификацию;

    • call – запросы на выполнение хранимой процедуры;

    • delete – запросы на удаление;

    • error – запросы, завершившиеся с ошибкой;

    • eval – запросы на выполнение Lua-кода;

    • execute – выполнение SQL-запросов;

    • insert – запросы на вставку;

    • prepare – запросы SQL prepare;

    • replace – запросы на замену;

    • select – запросы на поиск;

    • update – запросы на обновление;

    • upsert – запрос на обновление или вставку.

Информация о репликации

Текущий статус репликации. Тип метрик: gauge.

  • tnt_info_lsn – LSN (log sequence number) , регистрационный номер в журнале данного экземпляра;

  • tnt_info_vclock{id} – значение LSN из пары id: lsn в векторных часах, где id – идентификатор экземпляра в наборе реплик, lsn – регистрационный номер в журнале. Метрика имеет тег id – идентификатор экземпляра в наборе реплик;

  • tnt_replication_lsn{id,type} – LSN экземпляра Tarantool. Метрика имеет теги:

    • id – идентификатор экземпляра в наборе реплик;

    • type – тип. Возможные значения: master, replica;

  • tnt_replication_lag{id,stream} – значение лага репликации в секундах. Метрика имеет теги:

    • id – идентификатор экземпляра в наборе реплик;

    • stream – тип. Возможные значения: downstream, upstream;

  • tnt_replication_status{id,stream} – принимает значение 1 при статусе репликации follow, иначе – 0. Значение 0 может указывать на проблемы с репликацией, например, потерю связи с мастером или сбои в сети. Метрика имеет теги:

    • id – идентификатор экземпляра в наборе реплик;

    • stream – тип. Возможные значения: downstream, upstream.

Информация о синхронной репликации

Текущее состояние синхронной репликации. Тип метрик: gauge.

  • tnt_synchro_queue_owner – ID экземпляра, который является лидером синхронной репликации в текущий момент;

  • tnt_synchro_queue_term – текущий терм очереди;

  • tnt_synchro_queue_len – количество транзакций, собирающих подтверждения в текущий момент;

  • tnt_synchro_queue_busy – значение 1, если очередь обрабатывает системный запрос (CONFIRM/ROLLBACK/PROMOTE/DEMOTE), иначе – 0.

Информация о выборах лидера

Текущее состояние узла в наборе реплик относительно выборов лидера. Тип метрик: gauge.

  • tnt_election_state – состояние узла во время выборов лидера. Когда выборы включены, узел доступен для записи только в состоянии лидера. Возможные значения:

    • 0 (follower) – все узлы, не являющиеся лидерами (реплики);

    • 1 (candidate) – узлы, начавшие новый раунд выборов (кандидаты);

    • 2 (leader) – узел, набравший необходимый кворум голосов (лидер);

  • tnt_election_vote – ID узла, за который голосует текущий узел. Принимает значение 0, если узел еще не проголосовал в текущем терме;

  • tnt_election_leader – ID узла, который является лидером в текущем терме. Принимает значение 0, если узлу недоступна информация о лидере в текущем терме;

  • tnt_election_term – текущий терм выборов;

  • tnt_election_leader_idle – время в секундах с момента последнего взаимодействия с известным лидером.

Статистика использования памяти для среды выполнения Lua-кода

Тип метрик: gauge.

  • tnt_runtime_lua – объем динамической памяти сборщика мусора в Lua в байтах;

  • tnt_runtime_used – объем памяти в байтах, используемый Lua в данный момент;

  • tnt_runtime_tuple – объем памяти в байтах, используемый для кортежей (кроме кортежей memtx и vinyl).

Метрики LuaJIT

Общая статистика JIT, работа сборщика мусора Lua и статистика выделения (аллокации) памяти.

Общие метрики JIT

  • lj_jit_snap_restore_total – общее количество восстановлений стека при выходе с трассы. Тип метрики: counter;

  • lj_jit_trace_num – количество скомпилированных трасс. Тип метрики: gauge;

  • lj_jit_trace_abort_total – общее количество прерванных компиляций. Тип метрики: counter;

  • lj_jit_mcode_size – общий объем выделенного машинного кода в байтах. Тип метрики: gauge.

JIT-строки

  • lj_strhash_hit_total – количество интернированных строк. Тип метрики: counter;

  • lj_strhash_miss_total – общее количество выделенных строк. Тип метрики: counter.

Шаги сборщика мусора

  • lj_gc_steps_atomic_total – количество шагов инкрементального сборщика мусора (фаза atomic). Тип метрики: counter;

  • lj_gc_steps_sweepstring_total – количество шагов инкрементального сборщика мусора (фаза sweep для строк). Тип метрики: counter;

  • lj_gc_steps_finalize_total – количество шагов инкрементального сборщика мусора (фаза finalize). Тип метрики: counter;

  • lj_gc_steps_sweep_total – количество шагов инкрементального сборщика мусора (фаза sweep). Тип метрики: counter;

  • lj_gc_steps_propagate_total – количество шагов инкрементального сборщика мусора (фаза propagate). Тип метрики: counter;

Выделение памяти

  • lj_gc_strnum – количество выделенных объектов string. Тип метрики: gauge;

  • lj_gc_tabnum – количество выделенных объектов table. Тип метрики: gauge;

  • lj_gc_cdatanum – количество выделенных объектов cdata. Тип метрики: gauge;

  • lj_gc_udatanum – количество выделенных объектов udata. Тип метрики: gauge;

  • lj_gc_freed_total – объем освобожденной памяти в байтах. Тип метрики: counter;

  • lj_gc_memory – текущий объем выделенной Lua-памяти в байтах. Тип метрики: gauge;

  • lj_gc_allocated_total – объем выделенной памяти в байтах. Тип метрики: counter.

Статистика CPU

Информация об использовании процессора. Метрики доступны только для Linux. Тип метрик: gauge.

  • tnt_cpu_number – общее количество процессоров, сконфигурированных операционной системой;

  • tnt_cpu_time – процессорное время хоста в секундах;

  • tnt_cpu_thread{kind,thread_name,thread_pid,file_name} – процессорное время потока Tarantool. Метрика имеет теги:

    • kind – вид. Возможные значения: user, system;

    • thread_name – имя потока. Возможные значения: tarantool, wal, iproto, coio;

    • thread_pid – PID (process ID), идентификатор потока;

    • file_name – имя файла точки входа, например, init.lua;

  • tnt_cpu_user_time – использованное пользовательское время процессора в секундах;

  • tnt_cpu_system_time – использованное системное время процессора в секундах.

Статистика работы движка vinyl

Информация о работе движка vinyl. Тип метрик: gauge.

Disk

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

  • tnt_vinyl_disk_data_size – количество данных в байтах, которое хранится в файлах .run. Файлы .run расположены в директории vinyl_dir;

  • tnt_vinyl_disk_index_size – количество данных в байтах, которое хранится в файлах .index. Файлы .index расположены в директории vinyl_dir.

Regulator

Регулятор движка vinyl определяет, когда начинать действия по дисковому IO, и группирует их в пакеты.

  • tnt_vinyl_regulator_dump_bandwidth – пропускная способность дампа, байты в секунду;

  • tnt_vinyl_regulator_write_rate – фактическая средняя скорость выполнения операций записи, байты в секунду;

  • tnt_vinyl_regulator_rate_limit – ограничение скорости записи, байты в секунду;

  • tnt_vinyl_regulator_dump_watermark – максимальный объем памяти в байтах, используемый для in-memory хранения LSM-дерева движка vinyl;

  • tnt_vinyl_regulator_blocked_writers – количество файберов, заблокированных в ожидании квоты памяти движка vinyl для «Уровня 0» (L0).

Transactional activity

Работа с транзакциями.

  • tnt_vinyl_tx_commit – счетчик коммитов (успешных завершений транзакций). Включает в себя неявные коммиты. Например, операция на вставку вызывает неявный коммит, если только операция не находится в блоке begin–commit;

  • tnt_vinyl_tx_rollback – счетчик откатов (неудачных завершений транзакций). Включает в себя:

    • явные запросы на rollback;

    • запросы, завершившиеся с ошибкой;

  • tnt_vinyl_tx_conflict – счетчик конфликтов, которые привели к откату транзакций;

  • tnt_vinyl_tx_read_views – текущее количество транзакций, которые перешли в состояние read-only, чтобы временно избежать конфликта;

Memory

Области памяти, используемые движком vinyl для кэша и буферов записи:

  • tnt_vinyl_memory_tuple_cache – объем памяти в байтах, используемый в настоящее время для хранения кортежей (данных);

  • tnt_vinyl_memory_level0 – область памяти «Уровень 0» (L0) в байтах;

  • tnt_vinyl_memory_page_index – объем памяти в байтах, используемый в настоящее время для хранения индексов;

  • tnt_vinyl_memory_bloom_filter – объем памяти в байтах, используемый фильтрами Bloom;

  • tnt_vinyl_memory_tuple – суммарный объем памяти в байтах, занятый кортежами в движке vinyl. Включает в себя кортежи, хранящиеся в кеше кортежей vinyl, а также кортежи, которые используются приложением Lua.

Scheduler

Планировщик движка vinyl, который раз в секунду вызывает регулятор и обновляет связанные с ним переменные.

  • tnt_vinyl_scheduler_tasks{status} – количество задач планировщика на дамп / сжатие. Метрика имеет тег status. Возможные значения тега:

    • inprogress – для задач, запущенных в данный момент;

    • completed – для успешно завершенных задач;

    • failed – для задач, прерванных из-за ошибок;

  • tnt_vinyl_scheduler_dump_time – общее время в секундах, затраченное всеми рабочими потоками на выполнение дампов;

  • tnt_vinyl_scheduler_dump_total – счетчик выполненных дампов.

Статистика цикла событий

Информация о потоке транзакций цикла событий в момент сбора метрик. Тип метрик: gauge.

  • tnt_ev_loop_time – время цикла событий в миллисекундах;

  • tnt_ev_loop_prolog_time – время пролога цикла событий в миллисекундах;

  • tnt_ev_loop_epilog_time – время эпилога цикла событий в миллисекундах.

Статистика памяти транзакционного менеджера memtx

Статистика памяти memtx MVCC. Менеджер транзакций memtx включает в себя:

  • транзакции;

  • механизм MVCC.

Тип метрик: gauge.

Транзакции (TXN)

  • tnt_memtx_tnx_statements{kind} – инструкция транзакции. Метрика имеет тег kind. Возможные значения тега:

    • total – память в байтах, выделенная на инструкции для всех текущих транзакций;

    • average – среднее количество байтов, используемых транзакциями для инструкций. Соотношение: txn.statements.total / количество открытых транзакций;

    • max – наибольшее количество памяти в байтах, используемое конкретной текущей транзакцией для инструкций;

  • tnt_memtx_tnx_user{kind} – статистика для функции box_txn_alloc(). Метрика имеет тег kind. Возможные значения тега:

    • total – количество памяти в байтах, выделенное на функцию box_txn_alloc() для всех текущих транзакций;

    • average – среднее значение транзакции. Соотношение: общее количество выделенных байтов / количество текущих транзакций;

    • max – наибольшее количество памяти в байтах, выделенное на функцию box_txn_alloc() для конкретной транзакции;

  • tnt_memtx_tnx_system{kind} – внутренние компоненты (логи и точки сохранения). Метрика имеет тег kind. Возможные значения тега:

    • total – память в байтах, выделенная на внутренние компоненты для всех текущих транзакций;

    • average – среднее количество памяти в байтах, выделенное на внутренние компоненты. Соотношение: общее количество выделенных байтов / количество текущих транзакций;

    • max – наибольшее количество памяти в байтах, выделенное на внутренние компоненты для конкретной транзакции.

MVCC

Механизм MVCC отвечает за изолирование транзакций. Он выявляет конфликты и следит, чтобы не были удалены отсутствующие в спейсе кортежи, которые читает или может прочитать какая-либо транзакция.

  • tnt_memtx_mvcc_trackers{kind} – трекеры, отслеживающие чтение транзакций. Метрика имеет тег kind. Возможные значения тега:

    • total – память в байтах, выделенная на трекеры по всем текущим транзакциям;

    • average – среднее количество байтов, выделенное на трекеры по всем текущим транзакциям. Соотношение: количество памяти / количество транзакций;

    • max – наибольшее количество памяти в байтах, выделенное на трекеры для одной транзакции.

  • tnt_memtx_mvcc_conflicts{kind} – память, выделенная на конфликты транзакций. Метрика имеет тег kind. Возможные значения тега:

    • total – память в байтах, суммарно выделенная на конфликты;

    • average – среднее количество байтов, выделенное на конфликты по всем текущим транзакциям. Соотношение: количество памяти / количество транзакций;

    • max – наибольшее количество памяти в байтах, выделенное на конфликты для одной транзакции.

Кортежи

Сохраненные кортежи можно разделить на три категории: used, read_view, tracking.

Каждая категория имеет две метрики:

  • retained – сохраненные кортежи. Таких кортежей уже нет в индексе, но механизм MVCC не позволяет их удалить;

  • stories – история кортежа. Истории – механизм, на котором основан MVCC. История есть почти у всех кортежей, в том числе у кортежей в индексе.

Тип метрик: gauge.

  • tnt_memtx_mvcc_tuples_used_stories{kind} – кортежи, которые используются активными транзакциями чтения и записи. Метрика имеет тег kind. Возможные значения тега:

    • count – соотношение количество используемых кортежей / количество историй;

    • total – объем памяти в байтах, занятый историями используемых кортежей;

  • tnt_memtx_mvcc_tuples_used_retained{kind} – сохраненные кортежи, которые используются активными транзакциями чтения и записи. Метрика имеет тег kind. Возможные значения тега:

    • count – соотношение количество используемых сохраненных кортежей / количество историй;

    • total – объем памяти в байтах, занятый используемыми сохраненными кортежами;

  • tnt_memtx_mvcc_tuples_read_view_stories{kind} – кортежи, которые не используются активными транзакциями чтения и записи, но используются транзакциями read-only в read_view. Метрика имеет тег kind. Возможные значения тега:

    • count – соотношение количество кортежей read_view / количество историй;

    • total – объем памяти в байтах, занятый историями кортежей read_view;

  • tnt_memtx_mvcc_tuples_read_view_retained{kind} – сохраненные кортежи, которые не используются активными транзакциями чтения и записи, но используются транзакциями read-only в read view. Метрика имеет тег kind. Возможные значения тега:

    • count – соотношение количество сохраненных кортежей read_view / количество историй;

    • total – объем памяти байтах, занятый кортежами read_view;

  • tnt_memtx_mvcc_tuples_tracking_stories{kind} – кортежи, которые не используются транзакциями, но используются механизмом MVCC, чтобы отслеживать чтения. Метрика имеет тег kind. Возможные значения тега:

    • count – соотношение количество кортежей для отслеживания / количество историй;

    • total – объем памяти в байтах, занятый историями кортежей для отслеживания;

  • tnt_memtx_mvcc_tuples_tracking_retained{kind} – сохраненные кортежи, которые не используются транзакциями, но используются механизмом MVCC, чтобы отслеживать чтения. Метрика имеет тег kind. Возможные значения тега:

    • count – соотношение количество сохраненных кортежей для отслеживания / количество историй;

    • total – объем памяти в байтах, занятый сохраненными кортежами для отслеживания.

Статистика представлений для чтения (read view)

  • tnt_memtx_tuples_data_total – общее количество памяти в байтах, выделенной под кортежи данных. Эта метрика включает:

    • tnt_memtx_tuples_data_read_view – память, выделенную под read view;

    • tnt_memtx_tuples_data_garbage – память, которая не используется и будет освобождена в будущем (используется «ленивое» освобождение);

    • кортежи, которые фактически хранятся в спейсах memtx;

  • tnt_memtx_tuples_data_read_view – объем в памяти в байтах, выделенный под read view. Это часть памяти, которая используется для хранения данных, которые могут быть видны только транзакциям с определенными настройками изоляции;

  • tnt_memtx_tuples_data_garbage – объем памяти в байтах, который не используется и который планируется освободить в будущем. Эти данные помечены как «мусор» (garbage) и будут очищены позже, возможно, в ходе процесса сжатия или при освобождении памяти;

  • tnt_memtx_index_total – общее количество памяти в байтах, выделенной для индексации данных. Включает память, выделенную под read view, а также память, используемую для индексации кортежей, которые фактически хранятся в memtx;

  • tnt_memtx_index_read_view – память в байтах, выделенная специально для индексации данных read view.

Конфигурация Tarantool

Информация о конфигурации Tarantool.

Тип метрик: gauge.

  • tnt_config_alerts{level} – количество ошибок, возникших при применении текущей конфигурации экземпляра. Метрика имеет тег level – это уровень критичности ошибки. Возможные значения тега:

    • error – критические ошибки;

    • warn – другие ошибки;

  • tnt_config_status{status, alias} – статус применения текущей конфигурации экземпляра. Метрика имеет следующие теги:

    • status – возможное имя статуса. Текущий статус имеет значение метрики 1, неактивные статусы имеют значение метрики 0;

    # HELP tnt_config_status Tarantool 3 configuration status
    # TYPE tnt_config_status gauge
    tnt_config_status{status="reload_in_progress",alias="router-001-a"} 0
    tnt_config_status{status="uninitialized",alias="router-001-a"} 0
    tnt_config_status{status="check_warnings",alias="router-001-a"} 0
    tnt_config_status{status="ready",alias="router-001-a"} 1
    tnt_config_status{status="check_errors",alias="router-001-a"} 0
    tnt_config_status{status="startup_in_progress",alias="router-001-a"} 0
    

    Например, этот набор метрик означает, что текущая конфигурация для router-001-a готова.

    • alias – имя экземпляра, на котором собирается метрика.

Found what you were looking for?
Feedback