Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Справочник по метрикам

На этой странице приведено подробное описание метрик из модуля metrics.

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

Общая информация об экземпляре

tnt_cfg_current_time

Системное время экземпляра в формате Unix timestamp.

tnt_info_uptime

Время в секундах с момента запуска экземпляра.

tnt_read_only

Указывает, находится ли экземпляр в режиме только для чтения (1 если true, 0 если false).

Общие сведения о памяти

Следующие метрики показывают использование памяти процессом Tarantool.

tnt_info_memory_cache

Количество байт в кэше, используемом для хранения кортежей с движком vinyl.

tnt_info_memory_data

Количество байт, используемых для хранения пользовательских данных (кортежей) с движком memtx и на уровне 0 движка vinyl, без учета фрагментации памяти.

tnt_info_memory_index

Количество байт, используемых для индексирования пользовательских данных. Включает экстенты деревьев памяти memtx и vinyl, индекс страниц vinyl и фильтры Блума vinyl.

tnt_info_memory_lua

Количество байт, используемых средой выполнения Lua. Мониторинг этой метрики помогает предотвратить переполнение памяти.

tnt_info_memory_net

Количество байт, используемых для буферов сетевого ввода-вывода.

tnt_info_memory_tx

Количество байт, используемых активными транзакциями. Для движка vinyl это общий размер всех выделенных объектов (struct txv, struct vy_tx, struct vy_read_interval) и закрепленных за ними кортежей.

Распределение памяти

Отчет об использовании памяти для аллокатора slab. Аллокатор slab – основной аллокатор, используемый для хранения кортежей. Следующие метрики помогают отслеживать общее использование памяти и ее фрагментацию. Подробнее о вариантах использования см. в документации на подмодуль box.slab.

Доступная память, байт

tnt_slab_quota_size

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

tnt_slab_arena_size

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

tnt_slab_items_size

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

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

tnt_slab_quota_used

Объем памяти, уже зарезервированный аллокатором slab.

tnt_slab_arena_used

Фактически используемая память для хранения кортежей и индексов. Не учитывает выделенные, но в данный момент свободные slab.

tnt_slab_items_used

Фактически используемая память для хранения только кортежей, без индексов. Не учитывает выделенные, но в данный момент свободные slab.

Утилизация памяти, %

tnt_slab_quota_used_ratio

tnt_slab_quota_used / tnt_slab_quota_size

tnt_slab_arena_used_ratio

tnt_slab_arena_used / tnt_slab_arena_size

tnt_slab_items_used_ratio

tnt_slab_items_used / tnt_slab_items_size

Спейсы

Следующие метрики предоставляют специфическую информацию о каждом отдельном спейсе в экземпляре Tarantool.

tnt_space_len

Количество записей в спейсе. У этой метрики всегда две метки: {name="test", engine="memtx"}, где name – имя спейса, а engine – движок спейса.

tnt_space_bsize

Общее количество байтов во всех кортежах. У этой метрики всегда две метки: {name="test", engine="memtx"}, где name – имя спейса, а engine – движок спейса.

tnt_space_index_bsize

Общее количество байтов, занимаемых индексом. У этой метрики всегда две метки: {name="test", index_name="pk"}, где name – имя спейса, а index_name - имя индекса.

tnt_space_total_bsize

Общий размер кортежей и всех индексов в спейсе. У этой метрики всегда две метки: {name="test", engine="memtx"}, где name – имя спейса, а engine - движок спейса.

tnt_vinyl_tuples

Общее количество кортежей для vinyl. У этой метрики всегда две метки: {name="test", engine="vinyl"}, где name – имя спейса, а engine – движок спейса. Для vinyl эта метрика отключена по умолчанию и может быть включена только с помощью настройки глобальной переменной: rawset(_G, 'include_vinyl_count', true).

Сеть

Статистика сетевой активности. Эти метрики можно использовать для мониторинга сетевой нагрузки, пиков использования и падений трафика.

Отправлено байт

tnt_net_sent_total

Количество байт, отправленных экземпляром по сети с момента запуска экземпляра.

Получено байт

tnt_net_received_total

Количество байт, полученных экземпляром с момента запуска.

Соединения

tnt_net_connections_total

Количество входящих сетевых соединений с момента запуска экземпляра.

tnt_net_connections_current

Количество активных сетевых соединений.

Запросы

tnt_net_requests_total

Количество сетевых запросов, обработанных экземпляром с момента его запуска.

tnt_net_requests_current

Количество сетевых запросов в ожидании.

Запросы в обработке

tnt_net_requests_in_progress_total

Общее количество запросов, обработанных потоком tx.

tnt_net_requests_in_progress_current

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

Запросы, помещенные в очереди потоков

tnt_net_requests_in_stream_total

Общее количество запросов, помещенных в очереди потоков за все время.

tnt_net_requests_in_stream_current

Количество запросов, ожидающих в очередях потоков в данный момент.

Начиная с Tarantool 2.10 каждая сетевая метрика содержит метку thread, отображающую сетевую статистику по потокам.

Файберы

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

tnt_fiber_amount

Количество файберов.

tnt_fiber_csw

Общее количество переключений контекста файберов.

tnt_fiber_memalloc

Объем памяти, зарезервированный для файберов.

tnt_fiber_memused

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

Операции

iproto-запросы, обработанные экземпляром, и агрегированные по типу, помогают определить, какие операции клиенты выполняют чаще всего.

tnt_stats_op_total

Общее количество вызовов с момента запуска сервера.

Для различения типов запросов у этой метрики есть метка operation. Например, он может выглядеть так: {operation="select"}. Возможные типы запросов приведены в таблице ниже.

auth

Запросы аутентификации.

call

Запросы на выполнение хранимых процедур.

delete

Вызовы delete.

error

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

eval

Вызовы для выполнения Lua-кода.

execute

Вызовы выполнения SQL.

insert

Вызовы insert.

prepare

Вызовы SQL prepare.

replace

Вызовы replace.

select

Вызовы select.

update

Вызовы update.

upsert

Вызовы upsert.

Репликация

Метрики отображают текущий статус репликации. Подробнее о репликации в Tarantool.

tnt_info_lsn

LSN экземпляра.

tnt_info_vclock

Номер LSN в vclock. У этой метрики всегда есть метки {id="id"}, где id – номер экземпляра в наборе реплик.

tnt_replication_lsn

LSN экземпляра tarantool. У этой метрики всегда есть метки {id="id", type="type"}, где id – номер экземпляра в наборе реплик, typemaster или replica.

tnt_replication_lag

Значение отставания репликации в секундах. У этой метрики всегда есть метки {id="id", stream="stream"}, где id - номер экземпляра в наборе реплик, stream - downstream или upstream.

tnt_replication_status

Равна 1, когда статус репликации – "follow", и 0 в противном случае. У этой метрики всегда есть метки {id="id", stream="stream"}, где id – номер экземпляра в наборе реплик, streamdownstream или upstream.

Среда выполнения

tnt_runtime_lua

Размер сборщика мусора Lua в байтах.

tnt_runtime_used

Количество байтов, используемых средой выполнения Lua.

tnt_runtime_tuple

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

Метрики LuaJIT

Метрики LuaJIT предоставляют информацию о работе сборщика мусора Lua. Эти метрики доступны в Tarantool 2.6 и более поздних версиях.

Основные метрики JIT

lj_jit_snap_restore_total

Общее количество восстановлений снимков.

lj_jit_trace_num

Количество JIT-трасс.

lj_jit_trace_abort_total

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

lj_jit_mcode_size

Общий размер выделенных областей машинного кода.

Строки JIT

lj_strhash_hit_total

Количество интернированных строк.

lj_strhash_miss_total

Общее количество выделений строк.

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

lj_gc_steps_atomic_total

Количество инкрементальных шагов сборщика мусора (состояние atomic).

lj_gc_steps_sweepstring_total

Количество инкрементальных шагов сборщика мусора (состояние sweepstring).

lj_gc_steps_finalize_total

Количество инкрементальных шагов сборщика мусора (состояние finalize).

lj_gc_steps_sweep_total

Количество инкрементальных шагов сборщика мусора (состояние sweep).

lj_gc_steps_propagate_total

Количество инкрементальных шагов сборщика мусора (состояние propagate).

lj_gc_steps_pause_total

Количество инкрементальных шагов сборщика мусора (состояние pause).

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

lj_gc_strnum

Количество выделенных объектов string.

lj_gc_tabnum

Количество выделенных объектов table.

lj_gc_cdatanum

Количество выделенных объектов cdata.

lj_gc_udatanum

Количество выделенных объектов udata.

lj_gc_freed_total

Общий объем освобожденной памяти.

lj_gc_memory

Текущий объем выделенной памяти Lua.

lj_gc_allocated_total

Общий объем выделенной памяти.

Метрики CPU

Приведенные ниже метрики содержат статистику использования CPU. Они доступны только в Linux.

tnt_cpu_number

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

tnt_cpu_time

Время CPU хоста.

tnt_cpu_thread

Время CPU потока Tarantool. У этой метрики всегда есть метки {kind="user", thread_name="tarantool", thread_pid="pid", file_name="init.lua"}, где: - kind может быть user или system - thread_name - tarantool, wal, iproto или coio, а file_name - имя файла точки входа, например, init.lua.

Также есть две межплатформенные метрики, кдоступные через вызовм getrusage().

tnt_cpu_user_time

Пользовательское время CPU Tarantool.

tnt_cpu_system_time

Системное время CPU Tarantool.

Vinyl

Метрики Vinyl предоставляют статистику движка vinyl.

Диск

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

tnt_vinyl_disk_data_size

Объем данных в байтах, хранящихся в файлах .run в директории vinyl_dir

tnt_vinyl_disk_index_size

Объем данных в байтах, хранящихся в файлах .index в директории vinyl_dir

Регулятор

Регулятор Vinyl определяет, когда начинать операции дискового ввода-вывода. Он группирует действия в пакеты для большей согласованности и эффективности.

tnt_vinyl_regulator_dump_bandwidth

Оценочная средняя скорость дампа, байт в секунду. Начальное значение скорости - 10485760 (10 мегабайт в секунду). Значение пересчитывается в зависимости от фактической скорости. Для оценки используются только значимые дампы размером более 1 МБ.

tnt_vinyl_regulator_write_rate

Фактическая средняя скорость выполнения операций записи, байт в секунду. Скорость рассчитывается как скользящее среднее за 5 секунд. Если значение метрики постепенно снижается, это может указывать на проблемы с диском.

tnt_vinyl_regulator_rate_limit

Ограничение скорости записи, байт в секунду. Регулятор ограничивает транзакции на основе наблюдаемой производительности дампа и компактизации. Если значение метрики снижается примерно до 10^5, это указывает на проблемы с диском или планировщиком.

tnt_vinyl_regulator_dump_watermark

Максимальный объем памяти в байтах для LSM-дерева vinyl в оперативной памяти. При достижении этого максимума необходимо выполнить дамп. Подробнее см. раздел Наполнение LSM-дерева. Значение немного меньше объема памяти, выделенного для деревьев vinyl, который отражен в параметре vinyl_memory.

tnt_vinyl_regulator_blocked_writers

Количество файберов, заблокированных в ожидании квоты памяти level0 для Vinyl.

Активность транзакций

tnt_vinyl_tx_commit

Счетчик коммитов (успешных завершений транзакций). Включает неявные коммиты: например, любая операция вставки вызывает коммит, если она не находится внутри блока box.begin()box.commit().

tnt_vinyl_tx_rollback

Счетчик откатов (неуспешных завершений транзакций). Это не просто количество явных вызовов функции box.rollback() - сюда также входят запросы, завершившиеся с ошибками.

tnt_vinyl_tx_conflict

Счетчик конфликтов, вызвавших откат транзакций. Отношение tnt_vinyl_tx_conflict / tnt_vinyl_tx_commit выше 5% указывает на неработоспособность движка vinyl. В этот момент, вероятно, появляются и другие проблемы с vinyl.

tnt_vinyl_tx_read_views

Текущее количество read views - то есть транзакций, перешедших в режим только для чтения для временного избежания конфликтов. Обычно значение равно 0. Если оно остается ненулевым в течение длительного времени, это указывает на утечку памяти.

Память

Следующие метрики показывают состояние областей памяти, используемых движком vinyl для кэшей и буферов записи.

tnt_vinyl_memory_tuple_cache

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

tnt_vinyl_memory_level0

Область памяти «Level 0» (L0), байты. L0 - это область, которую vinyl может использовать для хранения LSM-дерева в оперативной памяти. По этой метрике можно определить, когда L0 приближается к своему максимуму (tnt_vinyl_regulator_dump_watermark), при достижении которого происходит дамп. Ожидается, что L0 = 0 сразу после завершения дампа.

tnt_vinyl_memory_page_index

Объем памяти в байтах, используемый для хранения индексов. Если значение метрики близко к vinyl_memory, это указывает на то, что значение vinyl_page_size выбрано неверно.

tnt_vinyl_memory_bloom_filter

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

tnt_vinyl_memory_tuple

Общий объем памяти в байтах, занятый кортежами vinyl. Включает кэшированные кортежи и кортежи, закрепленные в Lua.

Планировщик

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

tnt_vinyl_scheduler_tasks

Количество задач дампа и компактизации планировщика. Метрика всегда имеет метку {status = <status_value>}, где <status_value> может быть одним из следующих: - inprogress - для выполняемых задач - completed - для успешно завершенных задач - failed – для задач, прерванных из-за ошибок.

tnt_vinyl_scheduler_dump_time

Общее время в секундах, затраченное всеми рабочими потоками на выполнение дампов.

tnt_vinyl_scheduler_dump_total

Счетчик завершенных дампов.

Метрики цикла обработки событий

Информация о цикле обработки событий потока tx:

tnt_ev_loop_time

Время цикла обработки событий (мс).

tnt_ev_loop_prolog_time

Время пролога цикла обработки событий (мс).

tnt_ev_loop_epilog_time

Время эпилога цикла обработки событий (мс).

Синхронизация

Показывает текущее состояние синхронной репликации.

tnt_synchro_queue_owner

Идентификатор экземпляра - текущего мастера синхронной репликации.

tnt_synchro_queue_term

Текущий терм очереди (номер раунда выборов по Raft).

tnt_synchro_queue_len

Количество транзакций, ожидающих подтверждения.

tnt_synchro_queue_busy

Обрабатывает ли очередь системную запись (CONFIRM/ROLLBACK/PROMOTE/DEMOTE).

Выборы

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

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

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

Memtx

Статистика памяти Memtx mvcc. Менеджер транзакций состоит из двух частей:

  • Cами транзакции (раздел TXN);
  • MVCC.

TXN

tnt_memtx_tnx_statements - операторы транзакции.

Например, пользователь начал транзакцию и выполнил в ней действие space:replace{0, 1}. На уровне внутренних механизмов эта операция становится statement для текущей транзакции. У этой метрики всегда есть метка {kind="..."} со следующими значениями: - total: количество байт, выделенных для операторов всех текущих транзакций. - average: среднее количество байт, используемых транзакциями для операторов (байты txn.statements.total/количество открытых транзакций). - max: максимальное количество байт, используемых одной текущей транзакцией для операторов.

tnt_memtx_tnx_user

В Tarantool C API есть функция box_txn_alloc(). С помощью этой функции пользователь может выделить память для текущей транзакции. У этой метрики всегда есть метка {kind="..."} со следующими значениями: - total: память, выделенная функцией box_txn_alloc() во всех текущих транзакциях. - average: среднее значение на транзакцию (всего выделено байт / количество всех текущих транзакций). - max: максимальное количество байт, выделенное функцией box_txn_alloc() на одну транзакцию.

MVCC

mvcc отвечает за изоляцию транзакций. Он обнаруживает конфликты и следит за тем, чтобы кортежи, которых больше нет в спейсе, но которые были прочитаны некоторой транзакцией (или могут быть прочитаны), не были удалены.

tnt_memtx_mvcc_trackers

Трекеры, отслеживающие чтение транзакций. У этой метрики всегда есть метка {kind="..."} со следующими значениями: - total: всего выделено трекеров для всех текущих транзакций (в байтах). - average: среднее значение для всех текущих транзакций (общий объем памяти в байтах/количество транзакций). - max: максимальный объем трекеров, выделенный на одну транзакцию (в байтах).

tnt_memtx_mvcc_conflicts

Память, выделенная при конфликтах транзакций. У этой метрики всегда есть метка {kind="..."} со следующими значениями: - total: всего байт выделено для конфликтов. - average: среднее значение для всех текущих транзакций (общий объем памяти в байтах/количество транзакций). - max: максимальный объем байт, выделенный для конфликтов на одну транзакцию.

Кортежи

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

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

  • retained - кортежи, которых больше нет в индексе, но MVCC не позволяет их удалить.
  • stories - MVCC основан на механизме story, почти у каждого кортежа есть story. Это отдельная метрика, так как даже кортежи, находящиеся в индексе, могут иметь story. Поэтому stories и retained нужно измерять отдельно.

tnt_memtx_mvcc_tuples_used_stories

Кортежи, используемые активными транзакциями чтения-записи. У этой метрики всегда есть метка {kind="..."} со следующими значениями: - count: количество кортежей used/ количество stories. - total: объем байт, используемых stories кортежей used.

tnt_memtx_mvcc_tuples_used_retained

Кортежи, используемые активными транзакциями чтения-записи, но которых больше нет в индексе, и MVCC не позволяет их удалить. У этой метрики всегда есть метка {kind="..."} со следующими значениями: - count: количество retained-кортежей used/ количество stories. - total: объем байт, используемых retained-кортежами used.

tnt_memtx_mvcc_tuples_read_view_stories

Кортежи, не используемые активными транзакциями чтения-записи, но используемые транзакциями только для чтения (то есть в представлении чтения). У этой метрики всегда есть метка {kind="..."} со следующими значениями: - count: количество кортежей read_view/ количество stories. - total: объем байт, используемых stories кортежей read_view.

tnt_memtx_mvcc_tuples_read_view_retained

Кортежи, не используемые активными транзакциями чтения-записи, но используемые транзакциями только для чтения (то есть в представлении чтения). Эти кортежи больше не в индексе, и MVCC не позволяет их удалить. У этой метрики всегда есть метка {kind="..."} со следующими значениями: - count: количество retained-кортежей read_view/ количество stories. - total: объем байт, используемых retained-кортежами read_view.

tnt_memtx_mvcc_tuples_tracking_stories

Кортежи, не используемые напрямую ни одной транзакцией, но используемые MVCC для отслеживания чтения. У этой метрики всегда есть метка {kind="..."} со следующими значениями: - count: количество кортежей tracking/ количество tracking stories. - total: объем байт, используемых stories кортежей tracking.

tnt_memtx_mvcc_tuples_tracking_retained

Кортежи, не используемые напрямую ни одной транзакцией, но используемые MVCC для отслеживания чтения. Эти кортежи больше не в индексе, и MVCC не позволяет их удалить. У этой метрики всегда есть метка {kind="..."} со следующими значениями: - count: количество retained-кортежей tracking/ количество stories. - total: объем байт, используемых retained-кортежами tracking.

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

tnt_memtx_tuples_data_total

Общий объем памяти (в байтах), выделенной для кортежей данных. Включает значения метрик tnt_memtx_tuples_data_read_view и tnt_memtx_tuples_data_garbage, а также кортежи, которые фактически хранятся в спейсах memtx.

tnt_memtx_tuples_data_read_view

Память (в байтах), удерживаемая для представлений чтения.

tnt_memtx_tuples_data_garbage

Память (в байтах), которая не используется и запланирована к освобождению (освобождается лениво при выделении памяти).

tnt_memtx_index_total

Общий объем памяти (в байтах), выделенной для индексирования данных. Включает значение метрики tnt_memtx_index_read_view, а также память, используемую для индексирования кортежей, которые фактически хранятся в спейсах memtx.

tnt_memtx_index_read_view

Память (в байтах), удерживаемая для представлений чтения.

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

Начиная с версии: 3.0.0.

tnt_config_alerts

Количество предупреждений применения конфигурации текущего экземпляра. Метка {level="warn"} соответствует предупреждениям, а {level="error"} – ошибкам.

tnt_config_status

Статус применения конфигурации текущего экземпляра. Метка status содержит имя возможного статуса. Текущий статус имеет значение метрики 1, неактивные статусы – 0. Например, набор метрик из примера означает, что текущий статус конфигурации для router-001-aready.

Пример статуса ready конфигурации Tarantool

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