nav-img
Evolution

Логирование, индикаторы прогресса и вывод статистики

Логирование в sbdctl

Утилита sbdctl поддерживает запись логов для большинства операций. Логирование — это запись протокола выполняемых программой действий и произошедших событий, при этом объем и степень подробности записываемой информации зависят от параметра, называемого уровнем логирования. По умолчанию запись логов осуществляется на стандартный поток ошибок (stderr). Поддерживаются следующие уровни логирования: trace, debug, info, warn, error. По умолчанию используется error — записывается информация только о событиях, связанных с ошибками. Все операции sbdctl с поддержкой логирования поддерживают следующие опции командной строки:

  • --log-to-file file — запись логов в указанный файл (по умолчанию отключено). Для просмотра логов можно использовать утилиту zstdcat.

  • --log-file-prefix arg — префикс для имен файлов логов. По умолчанию sbdctl-subcmd.client-nnn или sbdctl-subcmd в зависимости от того, подключается ли команда к хранилищу, или работает локально. Пример названия файла с логом: sbdctl-import.client-234.0.log.zst.

  • --log-level arg — установка уровня логирования, по умолчанию error.

  • --log-dir dir — каталог для хранения файлов логов (по умолчанию текущий каталог).

Дополнительные параметры логирования. Рекомендуется использовать значения по умолчанию, поскольку они влияют на производительность, размер и количество создаваемых файлов:

  • --log-buf-cnt N;

  • --log-buf-size-mb size;

  • --log-compress-level N;

  • --log-rotate-file-cnt N;

  • --log-rotate-file-size-mb size.

Индикаторы прогресса

Для операций с большим объемом данных sbdctl отображает индикатор прогресса:

  1. Процентный индикатор (когда известен общий объем данных):

    ========> 35%

  2. Вращающийся индикатор (когда объем данных неизвестен):

    ========> /

Пример команды использующей спиннер: sbdctl write --stdin. Поскольку заранее неизвестно, сколько данных попадет на вход sbdctl и будет записано в том, индикатор прогресса отображается на стандартном потоке ошибок, кроме тех ситуаций, когда:

  • при перенаправлении stderr (оператор 2>);

  • при уровне логирования info или выше с выводом на консоль.

Вывод статистики

Для анализа производительности и выявления узких мест при выполнении операций с сетевым блочным устройством ряд операций sbdctl поддерживают опцию сбора статистики --show-stats. Формат и содержание статистики зависят от конкретной операции. По умолчанию статистика выводится в stderr в текстовом формате. С версии 1.3.74 поддерживается вывод в формате JSON, для этого нужно указать опцию --stats-json, при этом опцию --show-stats можно не указывать. По умолчанию статистика в формате JSON представляет собой одну строку без пробелов и переносов строки. Опция --format-json добавляет форматирование (пробелы, переносы строк). Вывод статистики в файл и печать в формате XML и других на данный момент не поддерживается.