Системные неймспейсы Reindexer со статистическими данными

Для каждой базы данных в Reindexer создается набор системных неймспейсов для хранения настроек и статистической информации. Для получения их списка можно воспользоваться командой \namespaces list через утилиту reindexer_tool:

Reindexer> \namespaces list

В ответ вернется перечень всех неймспейсов базы данных. Названия системных начинаются с символа #.

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

Неймспейс #memstats

В системном неймспейсе #memstats хранится детальная информация о потреблении памяти каждым неймспейсом базы данных.

Имя Тип данных Описание
name string Название неймспейса
type string namespace (для неймспейса с данными) или embedders (для системного неймспейса, связанного с автовекторизацией)
items_count int64 Общее количество записей в неймспейсе
empty_items_count int64 Количество пустых (неиспользуемых) слотов в неймспейсе. Поле возвращается только, если его значение не равно нулю
strings_waiting_to_be_deleted_size int64 Размер строк, удаленных из неймспейса, но все еще используемых в queryResults (в байтах)
storage_ok bool true, если дисковое хранилище включено и доступно для записи
storage_enabled bool true, если дисковое хранилище включено (этот флаг не учитывает наличия ошибок, связанных с записью в хранилище)
storage_status string Состояние дискового хранилища. Возможные значения: OK, NO SPACE LEFT, DISABLED или текст необработанной ошибки
storage_path string Путь к хранилищу неймспейса в файловой системе
optimization_completed bool Состояние фоновой оптимизации индексов
storage object Размер памяти асинхронного хранилища. Поля:
proxy_size - Общий размер памяти, занимаемый синхронной map’ой AsyncStorage (в байтах)
total object Для типа namespace. Сводка по потреблению памяти неймспейсом. Поля:
data_size — общий объем хранящихся в неймспейсе записей;
indexes_size — объем памяти, потребляемый индексами неймспейса;
cache_size — размер памяти, занимаемый кешем данных из неймспейса;
index_optimizer_memory — объем памяти, которую занимает фоновый оптимизатор индексов
replication object Для типа namespace. Статус репликации неймспейса. Значения полей описаны в разделе «Проверка статуса репликации»
join_cache object Для типа namespace. Сводная статистика Join-кеша. Хранит результаты выбора в правом неймспейсе по условию ON. Состав объекта описан ниже
query_cache object Для типа namespace. Сводная статистика Query-кеша. Хранит результаты запросов SELECT COUNT(*) с условиями WHERE. Состав объекта описан ниже
indexes array Для типа namespace. Сводка по потреблению памяти индексами неймспейса. Представляет собой массив объектов, соответствующих каждому индексу. Кроме того, помимо объявленных вами индексов, здесь отображается информация о специальном индексе -tuple. Он хранит структуру json исходного документа с неиндексированными полями. Состав объекта описан ниже
embedding_caches array Для типа embedders. Поля:
cache_tag - имя кеша из конфигурации;
capacity - размер кеша;
cache - статистика кеша; состав описан ниже;
storage_ok - true, если дисковое хранилище включено и доступно для записи;
storage_status - Подробная информация о состоянии хранилища. Может содержать «OK», «DISABLED», «FAILED» или описание последней ошибки;
storage_path - путь к хранилищу,
storage_size - размер занимаемого дискового пространства
tags_matcher object Для типа namespace. Сводная информация о TagsMatcher‘е. Поля:
tags_count - текущее количество тегов в словаре;
max_tags_count - максимально возможное количество тегов в словаре;
version - версия TagsMatcher‘а;
state_token - StateToken

Сводная статистика кеша:

Имя Тип данных Описание
total_size int64 Общее потребление памяти данным видом кеша
items_count int64 Количество элементов кеша, в которых есть данные
empty_count int64 Количество пустых элементов кеша
hit_count_limit int64 Количество выполнений запроса, необходимых для кеширования результатов

Cтатистика индекса:

Имя Тип данных Описание
name string Название индекса
uniq_keys_count int64 Количество уникальных значений ключей, хранящихся в индексе
data_size int64 Объем памяти, занимаемый документами, хранящимися по индексу
sort_orders_size int64 Общее потребление памяти оператором SELECT и операторами сравнения GT и LT. Параметр измеряется только к индексам типа tree
idset_plain_size int64 Общее потребление памяти обратными индексными векторами. Для индексов store всегда равно нулю
idset_btree_size int64 Общее потребление памяти структурами b-tree с обратным индексом. Для индексных полей типа dense и store значение всегда равно нулю
indexing_struct_size int64 Общее потребление памяти структурами полнотекстового или векторного поиска
vectors_keeper_size int64 Общее потребление памяти (в байтах) общими структурами хранения векторов (только индексы ANN)
idset_cache object Сводная статистика Idset-кеша. Хранит объединенные результаты обратного индекса поля SELECT field IN(…) by IN(…) keys. Состав объекта описан здесь
tracked_updates_count int64 Количество обновлений, ожидающих в трекере обновлений индекса
tracked_updates_buckets int64 Количество сегментов в карте трекера обновлений индекса
tracked_updates_size int64 Объем памяти, занимаемой обновлениями индекса, которые накопились после его последней оптимизации. Если обновлений слишком много, они сбросятся, что приведёт к полной пересортировке индекса при следующем вызове оптимизатора
tracked_updates_overflow int64 Переполнение updates tracker
is_built bool Опциональный флаг, говорящий о том, построена ли индексная структура для векторного индекса
upsert_embedder object Статус updates embedder’а. Состав объекта описан ниже
query_embedder object Статус query embedder’а. Состав объекта описан ниже

Cтатус embedder’а:

Имя Тип данных Описание
status object Статус embeder’а. Поля:
last_request_result- статус выполнения последнего запроса (OK или ERROR);
last_error - информация о последней ошибке векторизации. Состав объекта описан ниже

Последняя ошибка embedder’а:

Имя Тип данных Описание
code int64 Код ошибки. 0 означает, что ошибки не было
message string Описание ошибки

Неймспейс #perfstats

В системном неймспейсе #perfstats хранится статистика производительности неймспейсов базы данных.

Имя Тип данных Описание
name string Название неймспейса
updates object Сводная статистика по операциям обновления данных. Поля объекта описаны ниже
selects object Сводная статистика по операциям выборки данных. Поля объекта описаны ниже
transactions object Сводная статистика по транзакциям. Поля объекта:
total_count — общее количество транзакций для данного неймспейса;
total_copy_count — количество операций копирования неймспейса;
avg_steps_count — среднее количество шагов в транзакции;
min_steps_count — минимальное количество шагов транзакции;
max_steps_count — максимальное количество шагов в транзакции;
avg_prepare_time_us — среднее время подготовки транзакции;
min_prepare_time_us — минимальное время подготовки транзакции;
max_prepare_time_us — максимальное время подготовки транзакции;
avg_commit_time_us —  среднее время коммита транзакции;
min_commit_time_us — минимальное время коммита транзакции;
max_commit_time_us — максимальное время коммита транзакции;
avg_copy_time_us — среднее время копирования неймспейса;
min_copy_time_us — минимальное время копирования неймспейса;
max_copy_time_us — максимальное время копирования неймспейса.
join_cache object Статистика jojn кеш. Поля описаны ниже
query_count_cache object Статистика кеша агрегация. Поля описаны ниже
indexes array Статистика по производительности при обращении к индексам. Поля объекта описаны ниже

Описание объекта PerfStat:

  • total_queries_count — количество запросов,
  • total_avg_latency_us — средняя задержка (время выполнения запроса),
  • total_avg_lock_time_us — среднее время ожидания получения блокировок для выполнения запроса,
  • last_sec_qps — количество запросов в последнюю секунду,
  • last_sec_avg_latency_us — средняя задержка (время выполнения запроса) для запросов, выполненных за последнюю секунду,
  • last_sec_avg_lock_time_us — среднее время ожидания получения блокировок для выполнения запроса за последнюю секунду,
  • latency_stddev — стандартное отклонение задержки,
  • min_latency_us — минимальная задержка (время выполнения запроса),
  • max_latency_us — максимальная задержка (время выполнения запроса).

Описание объекта LRUCachePerfStat:

Имя Тип данных Описание
total_queries int64 Колличество запросов к кешу
cache_hit_rate float Коэффициент попадания в кеш
is_active bool Используется ли кеш в данный момент. Обычно имеет значение false для незакомиченных индексов

Описание объекта IndexPerfStat:

Имя Тип данных Описание
name string Название индекса
commits object Cводная статистика по операциям коммита индексов во время их фоновой оптимизации. Поля объекта описаны выше
selects object Сводная статистика по операциям выборки данных. Поля объекта описаны выше
cache object Опционально. Статистика производительности для кеша IdSets в индексе (или полнотекстового кеша для текстовых индексов)
upsert_embedder object Статичтика upsert эмбедера. Поля описаны ниже
query_embedder object Статичтика query эмбедера. Поля описаны ниже

Описание объекта EmbedderPerfStat:

Имя Тип данных Описание
total_queries_count int64 Общее количество обращений к конкретном эмбедеру
total_embed_documents_count int64 Общее количество запрошенных векторов (кеш+сеть)
last_sec_qps int64 Количество обращений к эмбедеру за последнюю секунду
last_sec_dps int64 Количество векторизованных документов за последнюю секунду
total_errors_count int64 Общее количество ошибок обращения к эмбедеру
last_sec_errors_count int64 Количество ошибок за последнюю секунду
conn_in_use int64 Текущее количество используемых коннектов
last_sec_avg_conn_in_use int64 Среднее количество используемых коннектов за последнюю секунду
total_avg_latency_us int64 Среднее общее время автовекторизации
last_sec_avg_latency_us int64 Среднее время автовекторизации (за последнюю секунду)
max_latency_us int64 Максимальное общее время автовекторизации (за всё время)
min_latency_us int64 Минимальное общее время автовекторизации (за всё время)
total_avg_conn_await_latency_us int64 Среднее время ожидания коннекта из пула (за всё время)
last_sec_avg_conn_await_latency_us int64 Среднее время ожидания коннекта из пула (за последнюю секунду)
total_avg_embed_latency_us int64 Среднее время автовекторизации при кеш-промахе (за всё время)
last_sec_avg_embed_latency_us int64 Среднее время автовекторизации при кеш-промахе (за последнюю секунду)
max_embed_latency_us int64 Максимальное время автовекторизации при кеш-промахе (за всё время)
min_embed_latency_us int64 Минимальное время автовекторизации при кеш-промахе (за всё время)
total_avg_cache_latency_us int64 Среднее время автовекторизации при кеш-попадании (за всё время)
last_sec_avg_cache_latency_us int64 Среднее время автовекторизации при кеш-попадании (за последнюю секунду)
max_cache_latency_us int64 Максимальное время автовекторизации при кеш-попадании (за всё время)
min_cache_latency_us int64 Минимальное время автовекторизации при кеш-попадании (за всё время)
cache object Статистика кеша эмбедера. Содержит следующие поля:
cache_tag - таг кеша из конфигурации;
total_queries - колличество запросов к кешу;
cache_hit_rate - коэффициент попадания в кеш;
is_active - используется ли кеш в данный момент; обычно имеет значение false для незакомиченных индексов.

Неймспейс #queriesperfstats

В системном неймспейсе #queriesperfstats хранится сводная статистика производительности SELECT-запросов к базе данных. При запуске Reindexer с конфигурацией по умолчанию запись статистики в этот неймспейс не активируется. Её следует включить вручную. Сделать это можно через Reindexer Face (раздел Config -> вкладка Profiling -> флаг Record queries perofrmance statistics) или в служебном неймспейсе #config, задав для поля queriesperfstats айтема profiling значение true.

Имя Тип данных Описание
query string Нормализованное (без конкретных значений) SQL-представление запроса
longest_query string Ненормализованное SQL-представление запроса с самым большим временем выполнения
total_queries_count int64 Общее количество запросов данного типа
total_avg_latency_us int64 Средняя задержка (время выполнения) запросов данного типа
total_avg_lock_time_us int64 Среднее время ожидания получения блокировок для выполнения запроса
last_sec_qps int64 Количество запросов данного типа в последнюю секунду
last_sec_avg_latency_us int64 Средняя задержка (время выполнения запроса) для запросов данного типа, выполненных за последнюю секунду
last_sec_avg_lock_time_us int64 Среднее время ожидания получения блокировок для выполнения запроса данного типа за последнюю секунду
min_latency_us int64 Минимальная задержка (время выполнения запроса)
max_latency_us int64 Максимальная задержка (время выполнения запроса)
latency_stddev int64 Стандартное отклонение значений времени ожидания (задержки)

Неймспейс #namespaces

В системном неймспейсе #namespaces хранятся сведения обо всех неймспейсах базы данных, включая системные.

Имя Тип данных Описание
name string Название неймспейса
storage object Сведения о способе хранения данных неймспейса. Поля объекта:
enabled — флаг, указывающий, используется ли дисковое хранилище для неймспейса. Если его значение true, документы будут храниться на диске, если false — они удалятся при отключении сервера
indexes object Сведения об индексах неймспейса. Поля объекта:
name — название индекса,
field_type — тип данных поля;
index_type — тип индекса (подробнее);
is_pk — параметр указывает, что индекс является первичным ключом (подробнее);
is_array — параметр указывает, что индекс является массивом (array-индексом);
is_dense — уменьшение размера памяти, занимаемого индексным полем (подробнее);
is_sparse — строка (документ) содержит значение индекса Sparse только в том случае, если он задан специально — нет пустых (или по умолчанию) записей этого типа индексов в строке/документе (подробнее);
collate_mode — параметр указывает, включен ли режим сопоставления строк для сравнения и сортировки данных;
sort_order_letters — порядок сортировки символов;
expire_after — время жизни ttl-индекса (в секундах);
config — объект с настройками для полнотекстового индекса. Описания полей объекта — в разделе «Управление параметрами индексов»;
json_paths — имя JSON-поля (или полей), по которому строится индекс.
schema object JSON-схема неймспейса

Неймспейс #activitystats

В системном неймспейсе #activitystats хранится информация о текущих активностях пользователей базы данных. При запуске Reindexer с конфигурацией по умолчанию запись данных в этот неймспейс не активируется. Ее следует включить вручную. Сделать это можно через Reindexer Face (раздел Config -> вкладка Profiling -> флаг Activity statistics) или в служебном неймспейсе #config, задав для поля activitystats айтема profiling значение true.

Имя Тип данных Описание
client string Идентификатор клиента
user string Имя пользователя
query string Текст запроса
query_id int64 Идентификатор запроса
query_start string Время начала выполнения запроса
state string Текущее состояние запроса. Возможные значения:
in_progress — в процессе выполнения;
wait_lock — ожидание блокировки;
sending — отправка;
indexes_lookup — поиск по индексам;
select_loop — цикл пересечения выборок;
proxied_via_cluster_proxy — проксируется на другую ноду RAFT-кластера;
proxied_via_sharding_proxy — проксируется на другую шарду

Неймспейс #clientsstats

В системном неймспейсе #clientsstats хранится статистика по подключающимся к серверу Reindexer клиентам. Чтобы включить запись информации в нее, требуется перед запуском сервера установить значение true для параметра clientsstats в разделе metrics файла конфигурации или передать значение для него с помощью аргумента --clientsstats при конфигурировании сервера через командную строку.

Имя Тип данных Описание
connection_id int64 Идентификатор соединения
ip string IP клиента
user_name string Имя пользователя
user_rights string Уровень прав пользователя
db_name string Имя базы данных
current_activity string Текущая активность
start_time int64 Временная метка Unix времени установления подключения
recv_bytes int64 Количество принятых байтов информации
sent_bytes int64 Количество отправленных байтов информации
client_version: string Версия клиента
app_name string Имя приложения клиента
tx_count int64 Количество открытых транзакций для клиента
send_buf_bytes int64 Размер буфера отправки
last_send_ts int64 Время последней операции отправки данных (мс)
last_recv_ts int64 Время последней операции получения данных (мс)
send_rate int64 Текущая скорость отправки данных (байт/с)
recv_rate int64 Текущая скорость получения данных (байт/с)

Неймспейс #replicationstats

В системном неймспейсе #replicationstats хранится статистика по репликации. Статистика по синхронной репликации хранится в айтеме с type = 'cluster', а по асинхронной — в айтеме с type = 'async'.

Для получения статистики по синхронной или асинхронной репликации выполните запрос к неймспейсу #replicationstats с обязательным условием с фильтрацией по полю type, указав значение cluster или async. Пример запроса и поля неймспейса описаны в разделе «Проверка статуса и получение статистики».