Метрики Tarantool
В системе TDG доступны метрики для мониторинга работы экземпляров Tarantool.
Общая информация о различных параметрах экземпляров Tarantool. Тип метрик - gauge.
tnt_cfg_current_time- системное время экземпляра в формате unix timestamp;tnt_info_uptime- время с момента запуска экземпляра в секундах;tnt_read_only- принимает значение [1]{.title-ref}, если экземпляр находится в режиме read-only, иначе - [0]{.title-ref}.
Тип метрик - gauge.
tnt_info_memory_cache- объем памяти в байтах, используемый для кэширования данных. Актуально для движка базы данных vinyl;tnt_info_memory_data- объем памяти в байтах, используемый для хранения данных (кортежей);tnt_info_memory_index- объем памяти в байтах, используемый для индексирования данных;tnt_info_memory_lua- объем памяти в байтах, используемый средой выполнения Lua-кода;tnt_info_memory_net- объем памяти в байтах, используемый для буферов сетевого ввода/вывода;tnt_info_memory_tx- объем памяти в байтах, используемый активными транзакциями.
Распределение slab - это основное распределение, используемое для хранения кортежей. Метрики помогают отслеживать:
- суммарное использование памяти;
- фрагментацию памяти.
Тип метрик - gauge.
Чтобы узнать больше о вариантах использования распределения slab, обратитесь к документации модуля box.slab.
tnt_slab_quota_size- максимальный объем памяти в байтах, который механизм распределения slab может использовать как для кортежей, так и для индексов. Значение по умолчанию в параметреmemtx_memory: 2^28 байт = 268 435 456 байт;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- соотношениеquota_used/quota_size;tnt_slab_arena_used_ratio- соотношениеarena_used/arena_size;tnt_slab_items_used_ratio- соотношениеitems_used/slab_count * slab_size. Это распределения slab, которые используются только для кортежей, не для индексов.
Все метрики, за исключением tnt_space_index_bsize, имеют два тега:
name- имя спейса;engine- движок базы данных, используемый для этого спейса.
Тип метрик - gauge.
Доступные метрики
tnt_space_len{name,engine}- количество кортежей в спейсе;tnt_space_bsize{name,engine}- количество байтов, которые занимает спейс (количество байтов во всех кортежах, включая ключи индекса);tnt_space_index_bsize{name,index_name}- количество байтов, занятых под индексы. Метрика также имеет тегindex_name- название индекса.tnt_space_total_bsize{name,engine}- суммарное количество байтовspace_bsize + space_index_bsize;tnt_vinyl_tuples{name,engine}- суммарное количество кортежей для движка vinyl.
Мониторинг нагрузки сети, пиков использования и падения трафика. Начиная
с версии Tarantool
2.10,
метрики имеют тег 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_queue_total- общее количество сетевых запросов, помещенных в очереди стримов за все время потоком процессора транзакций (TX thread). Тип метрики: counter;tnt_net_requests_in_stream_queue_current- количество сетевых запросов, ожидающих обработки в очередях стримов в текущий момент. Тип метрики: gauge.
Статистика по файберам. Тип метрик - gauge.
tnt_fiber_amount- общее количество файберов;tnt_fiber_csw- количество переключений контекста для всех файберов;tnt_fiber_memalloc- общий объем памяти в байтах, выделенный под файберы;tnt_fiber_memused- объем памяти в байтах, используемый файберами.
Тип метрики - gauge.
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]{.title-ref} при статусе репликацииfollow, иначе - [0]{.title-ref}. Метрика имеет теги:id- идентификатор экземпляра в наборе реплик;stream- тип. Возможные значения:downstream,upstream.
Текущее состояние синхронной репликации. Тип метрик - gauge.
tnt_synchro_queue_owner- ID экземпляра, который является лидером синхронной репликации в текущий момент;tnt_synchro_queue_term- текущий терм очереди;tnt_synchro_queue_len- количество транзакций, собирающих подтверждения в текущий момент;tnt_synchro_queue_busy- значение [1]{.title-ref}, если очередь обрабатывает системный запрос (CONFIRM/ROLLBACK/PROMOTE/DEMOTE), иначе- [0]{.title-ref}.
Тип метрик - gauge.
tnt_cartridge_issues{level}- количество ошибок в работе экземпляра. Метрика имеет тегlevel- это уровень критичности ошибки:critical- критические ошибки в работе экземпляра. Пример: используется более 90% памяти;warning- другие ошибки в работе кластера. Пример: ошибки репликации на экземпляре;
tnt_cartridge_cluster_issues- суммарное количество ошибок в работе экземпляра в кластере;tnt_clock_delta{delta}- рассинхронизация часов в кластере в секундах (разница во времени между локальными часами и часами другого экземпляра). Положительное значение указывает на то, что часы другого экземпляра опережают локальные. Отрицательное значение –- на то, что часы другого экземпляра отстают от локальных. Метрика имеет тегdelta. Возможные значения тега:max- разница с абсолютным максимальным значением часов (всегда положительная);min- разница с абсолютным минимальным значением часов (всегда отрицательная);
tnt_cartridge_failover_trigger_total- количество триггеров аварийного переключения в кластере.
Текущее состояние узла в наборе реплик относительно выборов лидера. Тип метрик - gauge.
tnt_election_state- состояние узла во время выборов лидера. Когда выборы включены, узел доступен для записи только в состоянии лидера. Возможные значения:- [0]{.title-ref} (
follower) - все узлы, не являющиеся лидерами (реплики); - [1]{.title-ref} (
candidate) - узлы, начавшие новый раунд выборов (кандидаты); - [2]{.title-ref} (
leader) - узел, набравший необходимый кворум голосов (лидер);
- [0]{.title-ref} (
tnt_election_vote- ID узла, за который голосует текущий узел. Принимает значение [0]{.title-ref}, если узел еще не проголосовал в текущем терме;tnt_election_leader- ID узла, который является лидером в текущем терме. Принимает значение [0]{.title-ref}, если узлу недоступна информация о лидере в текущем терме.tnt_election_term- текущий терм выборов.
Тип метрик - gauge.
tnt_runtime_lua- объем динамической памяти сборщика мусора в Lua в байтах;tnt_runtime_used- объем памяти в байтах, используемый Lua в данный момент;tnt_runtime_tuple- объем памяти в байтах, используемый для кортежей (кроме кортежей memtx и vinyl).
Общая статистика JIT, работа сборщика мусора Lua и статистика выделения (аллокации) памяти. Метрики доступны, начиная с версии Tarantool 2.6.
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_steps_pause_total- количество шагов инкрементального сборщика мусора (фазаpause). Тип метрики: 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.
Планировщик движка vinyl, который раз в секунду вызывает регулятор и обновляет связанные с ним переменные.
tnt_vinyl_scheduler_tasks{status}- количество задач планировщика на дамп / сжатие. Метрика имеет тегstatus. Возможные значения тега:inprogress- для задач, запущенных в данный момент;completed- для успешно завершенных задач;failed- для задач, прерванных из-за ошибок;
tnt_vinyl_scheduler_dump_time- общее время в секундах, затраченное всеми рабочими потоками на выполнение дампов;tnt_vinyl_scheduler_dump_count- счетчик выполненных дампов.
Информация о потоке транзакций цикла событий. Тип метрик - gauge.
tnt_ev_loop_time- время цикла событий в миллисекундах;tnt_ev_loop_prolog_time- время пролога цикла событий в миллисекундах;tnt_ev_loop_epilog_time- время эпилога цикла событий в миллисекундах.