Метрики Tarantool
Тип метрик: gauge.
Эти метрики помогают отслеживать текущее состояние экземпляра Tarantool, включая его время с момента запуска, режим доступа и системное время.
-
tnt_cfg_current_time— системное время экземпляра в формате Unix timestamp. Используется для проверки синхронизации времени между экземплярами. Расхождение во времени может вызвать проблемы с репликацией и логами; -
tnt_info_uptime— время работы экземпляра в секундах. Позволяет выявить незапланированные перезапуски. Регулярный сброс значения может свидетельствовать о сбоях; -
tnt_read_only— режим доступа экземпляра. Принимает значение 1, если экземпляр находится в режиме read-only, иначе – 0. Если мастер-узел перешёл в режим read-only, это приводит к отказу в записи.
Метрики состояния схемы экземпляра. Доступно с версии 3.1.0.
Тип метрик: gauge.
tnt_schema_needs_upgrade— состояние схемы экземпляра. Возможные значения:1— требуется обновить схему с помощьюbox.schema.upgrade();0— схема экземпляра актуальная, обновлять ее не требуется.
Тип метрик: 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 allocator) — это ключевой механизм хранения кортежей в Tarantool. Метрики этого раздела помогают отслеживать:
- суммарное использование памяти;
- фрагментацию памяти;
- доступную и фактически занятую память.
Тип метрик: gauge.
Чтобы узнать больше о вариантах использования распределения слабов, обратитесь к документации модуля box.slab.
tnt_slab_quota_size— максимальный объем памяти в байтах, который может быть выделен для хранения кортежей и индексов (вся память под слабы). Значение по умолчанию в параметреmemtx_memory: 2^28 байт = 268 435 456 байт;tnt_slab_arena_size— общий объем памяти в байтах, используемый для кортежей и индексов. Включает в себя выделенные распределения слабов, свободные в текущий момент;tnt_slab_items_size— общий объем памяти в байтах, используемый только для хранения кортежей. Включает в себя выделенные распределения слабов, свободные в текущий момент. Не используется для индексов.
tnt_slab_quota_used— общий объем памяти в байтах, действительно использованной из доступного лимита (quota_size);tnt_slab_arena_used— эффективный объем памяти в байтах, используемый для кортежей и индексов. Не включает в себя выделенные распределения слабов, свободные в текущий момент;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. Это распределения слабов, которые используются только для кортежей.
Все метрики, за исключением tnt_space_index_bsize, имеют два тега:
name— имя спейса;engine— движок базы данных, используемый для этого спейса.
Тип метрик: gauge.
tnt_space_bsize{name,engine}— объем памяти в байтах, который занимает спейс, включая все кортежи и ключи индексов;tnt_space_index_bsize{name,index_name}— объем памяти в байтах, занятый под индексы. Метрика также имеет тегindex_name— название индекса;tnt_space_len{name,engine}— количество кортежей в спейсе;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— время в секундах с момента последнего взаимодействия с известным лидером.
Тип метрик: gauge.
tnt_runtime_lua— объем динамической памяти сборщика мусора в Lua в байтах;tnt_runtime_used— объем памяти в байтах, используемый Lua в данный момент;tnt_runtime_tuple— объем памяти в байтах, используемый для кортежей (кроме кортежей memtx и vinyl).
Общая статистика JIT, работа сборщика мусора Lua и статистика выделения (аллокации) памяти.
lj_jit_snap_restore_total— общее количество восстановлений стека при выходе с трассы. Тип метрики: counter;lj_jit_trace_num— количество скомпилированных трасс. Тип метрики: gauge;lj_jit_trace_abort_total— общее количество прерванных компиляций. Тип метрики: counter;lj_jit_mcode_size— общий объем выделенного машинного кода в байтах. Тип метрики: gauge.
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.
Информация об использовании процессора. Метрики доступны только для 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. Тип метрик: gauge.
Дисковые метрики используются для мониторинга общего объема данных на диске.
tnt_vinyl_disk_data_size— количество данных в байтах, которое хранится в файлах.run. Файлы.runрасположены в директорииvinyl_dir;tnt_vinyl_disk_index_size— количество данных в байтах, которое хранится в файлах.index. Файлы.indexрасположены в директорииvinyl_dir.
Регулятор движка 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).
tnt_vinyl_tx_commit— счетчик коммитов (успешных завершений транзакций). Включает в себя неявные коммиты. Например, операция на вставку вызывает неявный коммит, если только операция не находится в блокеbegin–commit;tnt_vinyl_tx_rollback— счетчик откатов (неудачных завершений транзакций). Включает в себя:- явные запросы на rollback;
- запросы, завершившиеся с ошибкой;
tnt_vinyl_tx_conflict— счетчик конфликтов, которые привели к откату транзакций;tnt_vinyl_tx_read_views— текущее количество транзакций, которые перешли в состояние read-only, чтобы временно избежать конфликта.
Области памяти, используемые движком 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 MVCC. Менеджер транзакций memtx включает в себя:
- транзакции;
- механизм MVCC.
Тип метрик: gauge.
-
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 отвечает за изолирование транзакций. Он выявляет конфликты и следит, чтобы не были удалены отсутствующие в спейсе кортежи, которые читает или может прочитать какая-либо транзакция.
-
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— объем памяти в байтах, занятый сохраненными кортежами для отслеживания.
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.
Тип метрик: 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 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Например, этот набор метрик означает, что текущая конфигурация для
router-001-aготова. -
alias— имя экземпляра, на котором собирается метрика.
-