Метрики 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
– имя экземпляра, на котором собирается метрика.