Версия:

Вложенный модуль box.info

Вложенный модуль box.info

Вложенный модуль box.info предоставляет доступ к информации о переменных экземпляра сервера.

  • cluster.uuid – это уникальный идентификатор набора реплик (UUID). У каждого экземпляра в наборе реплик будет одно и то же значение cluster.uuid. Данное значение также хранится в системном спейсе box.space._schema.
  • gc() возвращает состояние сборщика мусора в Tarantool’е, в том числе контрольные точки и их потребителей (пользователи); более подробную информацию см. :ref: ниже <box_info_gc>.
  • id соответствует идентификатору replication.id (см. ниже).
  • lsn соответствует регистрационному номеру replication.lsn (см. ниже).
  • memory() возвращает статистику об использовании памяти (см. ниже).
  • pid – идентификатор процесса. Это значение также отображается с помощью модуля tarantool и по команде ps -A в Linux.
  • ro принимает значение true, если экземпляр находится в режиме только для чтения «read-only» (как read_only в box.cfg{}), или в статусе „orphan“ (одиночный).
  • signature представляет собой сумму всех значений lsn из векторных часов (vclock) всех экземпляров в наборе реплик.
  • status соответствует статусу replication.upstream.status (см. ниже).
  • uptime – это количество секунд с момента запуска экземпляра. Данное значение также можно получить с помощью tarantool.uptime().
  • uuid соответствует идентификатору replication.uuid (см. ниже).
  • vclock соответствует часам replication.downstream.vclock (см. ниже).
  • version – это версия Tarantool’а. Данное значение также можно отобразить с помощью команды tarantool -V.
  • vinyl возвращает статистику времени работы для движка базы данных vinyl. Данная функция объявлена устаревшей, используйте box.stat.vinyl().
box.info.memory()

Функция memory в box.info дает пользователю admin полное представление об экземпляре Tarantool’а.

Примечание

Чтобы получить представление о подсистеме vinyl’а, используйте box.stat.vinyl().

  • memory().cache –это количество байтов, используемых для кэширования данных пользователей. Движок базы данных memtx не нуждается в кэше, то есть на самом деле это количество байтов в кэше для кортежей движка базы данных vinyl.
  • memory().data – количество байтов, используемых для хранения данных пользователей (кортежи) в движке memtx и на уровне 0 движка vinyl, не принимая во внимание фрагментацию памяти.
  • memory().index – количество байтов, используемых для индексирования данных пользователей, включая экстенты для деревьев в memtx’е и vinyl’е, индекс страниц и фильтры Блума в vinyl’е.
  • memory().lua – количество байтов, используемых для времени исполнения Lua-кода.
  • memory().net – количество байтов, используемых буферами для сетевого ввода-вывода.
  • memory().tx – количество байтов, используемых активными транзакциями. Для движка базы данных vinyl это общий размер всех размещаемых объектов (структура txv, структура vy_tx, структура vy_read_interval) и кортежей, прикрепленных к этим объектам.

Пример с минимальным распределением, когда используется только движок базы данных memtx:

tarantool> box.info.memory()
 ---
 - cache: 0
   data: 6552
   tx: 0
   lua: 1315567
   net: 98304
   index: 1196032
 ...
box.info.gc()

Функция gc в box.info дает пользователю admin полное представление о факторах, которые влияют на сборщик мусора Tarantool’а. Сборщик мусора сопоставляет значения vclock (векторные часы) пользователей и контрольных точек, поэтому взглянув на box.info.gc(), можно понять, почему сборщик мусора не удалил старые WAL-файлы или что он может вскоре удалить.

  • gc().consumers – список пользователей, запросы которых могут затронуть сборку мусора.
  • gc().checkpoints – список сохраненных контрольных точек.
  • gc().checkpoints[n].references – список ссылок на контрольную точку.
  • gc().checkpoints[n].vclock – значение vclock контрольной точки.
  • gc().checkpoints[n].signature – сумма компонентов vclock контрольной точки.
  • gc().checkpoint_is_in_progress – true если идет создание контрольной точки, в противном случае false.
  • gc().vclock – vclock сборщика мусора.
  • gc().signature – сумма компонентов контрольной точки сборщика мусора.
box.info.replication

Раздел replication (репликация) во вложенном модуле box.info() содержит статистику по всем экземплярам в наборе реплик относительно текущего экземпляра (см. также «Мониторинг набора реплик»):

  • replication.id – это короткий числовой идентификатор экземпляра в рамках набора реплик.
  • replication.uuid – это глобально-уникальный идентификатор экземпляра. Данное значение также хранится в системном спейсе box.space._cluster.
  • replication.lsn – это номер в журнале (LSN) для последней записи в журнале упреждающей записи (WAL) экземпляра.
  • replication.upstream содержит статистику по реплицируемым данным, которые переданы экземпляром.
  • replication.upstream.status – это репликационный статус экземпляра:
    • auth означает, что экземпляр проходит аутентификацию для установки соединения с источником репликации.
    • connecting означает, что экземпляр пытается установить соединение с источниками репликации, перечисленными в параметре replication.
    • disconnected означает, что экземпляр не подключен к набору реплик (по причине проблем в сети, а не ошибок репликации).
    • follow означает, что идет репликация.
    • running означает, что роль экземпляра – «мастер» (не только для чтения), и идет репликация.
    • stopped означает, что репликация остановилась по причине ошибки репликации (например, повторяющийся ключ).
    • Статус orphan означает, что экземпляр (еще) не подключился к необходимому количеству мастеров (см. статус orphan).
    • synch means that the master and replica are synchronizing to have the same data.
  • replication.upstream.idle – это время (в секундах) с момента получения экземпляром последнего события от мастера. Это основной индикатор работоспособности репликации. Более подробную информацию см. в разделе Мониторинг набора реплик.
  • replication.upstream.peer содержит имя пользователя, запустившего репликацию, IP-адрес хоста и номер порта, используемый для экземпляра. Более подробную информацию см. в разделе Мониторинг набора реплик.
  • replication.upstream.lag – это разница во времени между локальным временем на экземпляре, зарегистрированным при получении события, и локальное время на другом мастере, зарегистрированное при записи события в журнал упреждающей записи на этом мастере. Более подробную информацию см. в разделе Мониторинг набора реплик.
  • replication.upstream.message содержит сообщение об ошибке в случае системного сбоя, в противном случае не заполнен.
  • replication.downstream содержит статистику по реплицируемым данным, которые запрошены и загружены с экземпляра.
  • replication.downstream.vclock содержит векторные часы, что представляет собой таблицу из пар „id, lsn“, например vclock: {1: 3054773, 4: 8938827, 3: 285902018}. Даже если экземпляр удален, тем не менее, значения с него появятся здесь.
  • replication.downstream.idle is the time (in seconds) since the last time this instance sent events through the downstream replication.
  • replication.downstream.status is the replication status for downstream replications:
    • stopped means that downstream replication has stopped.
    • follow means that downstream replication is in progress.
box.info()

Поскольку содержимое вложенного модуля box.info является динамическим, невозможно провести итерацию по ключам с помощью Lua-функции pairs(). Для этой цели модуль box.info() создает и возвращает Lua-таблицу со всеми ключами и значениями во вложенном модуле.

возвращается:ключи и значения во вложенном модуле
тип возвращаемого значения:
 таблица

Пример:

Данный пример приводится для набора со схемой мастер-реплика, который включает в себя один мастер-экземпляр и один реплика-экземпляр. Запрос был отправлен с реплики-экземпляра.

tarantool> box.info()
---
- vinyl: []
  version: 2.2.0-482-g8c84932ad
  id: 2
  ro: true
  status: running
  vclock: {1: 9}
  uptime: 356
  lsn: 0
  memory: []
  cluster:
    uuid: e261a5bc-6303-4de3-9873-556f311255e0
  pid: 160
  gc: []
  signature: 9
  replication:
    1:
      id: 1
      uuid: fce71bb3-0e99-40ec-ab7e-5159487e18d1
      lsn: 9
      upstream:
        status: follow
        idle: 0.035709699994186
        peer: replicator@127.0.0.1:3401
        lag: 0.00016164779663086
      downstream:
        status: follow
        idle: 0.59840899999836
        vclock: {1: 9}
    2:
      id: 2
      uuid: bc4629ce-ea31-4f75-b805-a4807bcacc93
      lsn: 0
  uuid: bc4629ce-ea31-4f75-b805-a4807bcacc93
...