Возвращаемое значение: нет
Предназначение Variables
Variables позволяет просмотреть отладочную информацию, полученную при вычислении значения счетчика.
Для того, чтобы по счетчику можно было получить отладочную информацию, необходимо в Counter settings включить опцию Enable Debug. Кроме того, в файле настроек системы должна быть установлена опция "debugCounters": { "disable": false }
Сбор отладочной информации может потребовать повышенного расхода ресурсов и помешать нормальной работе системы. Поэтому на высоконагруженных системах желательно избегать использования этой функции. Для отладки функционирования системы лучше использовать тестовое окружение. Если по какой-то причине избежать использования функции невозможно, необходимо ограничить количество счетчиков, с которых собирается отладочная информация. Для ограничения возможности использовать функцию сбора отладочных данных можно использовать опцию в файле настроек "debugCounters": { "disable": true }
Отладочная информация позволяет проанализировать:
- Результат выполнения выражений
- Представление вычисления выражения в обратной польской нотации
- Результаты проведения конверсий
- Результаты выполнения функций
- Результаты выполнения запросов в базу данных
- Результат вычисления событий Update events
- Значения переменных
- Переменные, которые не удалось вычислить
- Количество итераций для вычисления переменных
Описание интерфейса
Верхняя панель Variables позволяет выбрать пару объект-счетчик для отображения отладочной информации.
Object list
Если в системном меню Objects выбрать объекты, а затем запустить Variables, выбранные объекты появятся в поле Objects list. При необходимости можно добавить объекты в поле Objects list. Для этого нужно выбрать объекты в системном меню Objects и нажать на ADD SELECTED OBJECTS. Если нажать на крестик справа от объекта в поле Objects list, объект будет удален. Удалить все объекты из Objects list можно нажав на REMOVE ALL OBJECTS.
Выбрать объект, с котором планируется работать можно из списка объектов над Object list
Filter counter by group
Для поиска счетчика, можно отфильтровать их по группе
Counter selection
Элемент предназначен для выбора счетчика, по которому требуется смотреть отладочную информацию.
Reload
Для обновления загруженных отладочных данных по выбранному счетчику служит кнопка Reload
В нижней части панели отображается информация о том, по какому количеству попыток вычисления значения счетчика была загружена отладочная информация и когда последний раз было произведено обновление отладочных данных.
Отладочные данные
Нижняя панель содержит отладочные данные, собранные по выбранной паре объект-счетчик. В каждой строке указаны дата и время попытки вычисления значения счетчика и список переменных, которые вычислялись.
Система пытается хранить отладочные данные, по которым произошли наибольшие изменения. Поэтому часть попыток вычисления счетчика может быть пропущена для того, чтобы была возможность отобразить наиболее полезную информацию.
Если нажать на строку с переменными, откроется таблица с отладочной информацией, по одной из попыток вычисления счетчика.
Описание полей таблицы
- Time - время вычисления переменной
- Name - Имя переменной. Для Update event в столбце так же будет представлена информация о режиме обновления счетчика
- Expression - вычисляемое выражение или историческая функция
- Result - результат вычисления выражения и количество итераций, необходимых для вычисления. Большое количество итераций может создавать повышенную нагрузку на систему.
- Variables - Значения всех переменных во время вычисления значения текущей переменной. Unresolved variables показывает переменные, значения которых вычислить не удалось. Если нажать на элемент в ячейке столбца Variables, откроется форма в которой будут отображены значения переменных.
- Functions
- Если переменная вычислялась как выражение, то в ячейке будет записано выражение и обратная польская нотация, использованная для его вычисления, включая типы объектов, значения переменных, функций, операнды и результат вычисления.
- Если переменная вычисляется как значение функции для работы с историческими данными, то в ячейке будет записан результат выполнения запроса к базе данных и список полученных исторических данных.
Примеры отображения отладочной информации
Вычисление Update event
На примере показано вычисление Update event. Бирюзовый цвет фона означает, что результат вычисления значения выражения Update event такой, что будет запущен сборщик
В столбце Name указано, что переменная является Update event. Режим обновления для счетчика выбран как "Update each time when expression value is changed to true and once when changed to false", то есть обновлять каждый раз, когда значение выражения изменится на true и один раз, когда значение выражения изменится на false.
В столбце Expression указано выражение Update event: %:PARENT_VALUE:% < %:FREE_MEMORY_LIMIT:%. В данном случае сравнивается значение, полученное от родительского счетчика %:PARENT_VALUE:% со значением переменной %:FREE_MEMORY_LIMIT:%
В столбце Result есть информация, что результатом вычисления выражения стало false и количество итераций для вычисления выражения было 2. Первая итерация потребовалась для вычисления значения переменной %:FREE_MEMORY_LIMIT:%.
В столбце Variables в заголовке формы с переменными есть информация о том, что в счетчике есть 11 переменных. Так же нет ни одной переменной, значение которой не удалось вычислить. Если нажать на панель с этой информацией, откроется форма в которой по алфавиту будут перечислены переменные и их значения. Для вычисления выражения %:PARENT_VALUE:% < %:FREE_MEMORY_LIMIT:% используется %:PARENT_VALUE:% = 1631703040 и %:FREE_MEMORY_LIMIT:% = 1572864000.
Столбец Functions в данном случае показывает выражение %:PARENT_VALUE:% < %:FREE_MEMORY_LIMIT:% и процесс его вычисления, используя алгоритм обработки обратной польской нотации.
(object: {"type":"digit","data":1631703040}, object: {"type":"digit","data":1572864000}, object: {"type":"operator","operator":"<"})
- Первый объект является числом "digit" и его значение 1631703040.
- Второй объект является числом "digit" и его значение 1572864000.
- К ним применяется операнд "<"
Результат вычисления данного выражения является false (result: false)
Вычисление конверсии
На примере ниже показано вычисление конверсии. Значение 1500Mb преобразуется в байты.
В столбце Name указано название переменной FREE_MEMORY_LIMIT
В столбце Expression отображено исходное значение для конверсии - 1500Mb
В столбце Result представлен результат вычисления - 1572864000
Вычисление значения параметра для сборщика
Для сборщика Event generator вычисляется параметр Description of event, который будет отображаться в Dashboard.
В столбце Name отображается параметр счетчика, значение которого будет рассчитываться:
Free memory is %:FREE_MEMORY:%. Threshold %:HUMAN_FREE_MEMORY_LIMIT:%
и сборщик Event generator со всеми параметрами, которые ему передаются, включая тот, который будет рассчитываться:
[event-generator( 1, 2, , Free memory is %:FREE_MEMORY:%. Threshold %:HUMAN_FREE_MEMORY_LIMIT:%, 1, На %:ZABBIX_HOSTNAME:% %:FREE_MEMORY:% свободной памяти )]
В столбце Expression еще раз отображается вычисляемое выражение Free memory is %:FREE_MEMORY:%. Threshold %:HUMAN_FREE_MEMORY_LIMIT:%
В столбце Result отображается результат вычисления выражения:
Free memory is 1.52GB. Threshold 1.46GB
Вычисление функции
Пример вычисления значения функции с переменной
В столбце Name отображается имя переменной (HUMAN_FREE_MEMORY_LIMIT), значение которой вычисляется
В столбце Expression Показана функция с параметрами toHuman(%:FREE_MEMORY_LIMIT:%, "Bytes"). Функция переводит значение переменной из байт (1572864000) в удобную для восприятия для человека форму (1.46GB)
В столбце Result - результат вычисления функции: 1.46GB
Столбец Variables позволяет посмотреть значения вычисленных переменных
Столбец Functions показывает процесc вычисления функции включая процесс вычисления использующихся в функции переменных
toHuman(number: 1572864000, string: Bytes); result: 1.46GB toHuman(%:FREE_MEMORY_LIMIT:%, "Bytes")(object: {"type":"other","data":"1.46GB"}); result: 1.46GB
Вычисление функции на основе исторических значений
Вычисление статистической функции lastRob на основе исторических значений. Функция возвращает последнее значение из списка значений, которое не попадает в статистические выбросы. В данном случае берется 20 последних значений времени запуска сервиса и рассчитывается последнее время запуска сервиса, которое было выполнено по расписанию.
Столбец Name содержит имя переменной START_TIME
Столбец Expression содержит функцию с параметрами, значение которой будет вычислено.
MY_SERVICE {SERVER1} (I: SERVICE START TIME): lastRob(#20, #0, 0)
Столбец Result содержит результат вычисления: 32600365 (время в формате timestamp)
Столбец Function содержит исторические данные, на основе которых было вычислено значение функции.
29.03 09:00:27: 32419988 30.03 09:00:28: 32424616 31.03 09:00:14: 32414023 01.04 09:00:16: 32415277 02.04 09:00:24: 32424799 03.04 09:00:22: 32421961 04.04 09:00:12: 32412465 05.04 09:01:44: 32504857 07.04 09:00:53: 32434470 08.04 09:00:27: 32427185 10.04 09:03:10: 32590293 11.04 09:01:08: 32468366 13.04 09:00:24: 32419006 14.04 09:01:17: 32408282 16.04 09:00:13: 32413117 18.04 09:01:30: 32421608 20.04 09:03:14: 32594494 21.04 09:00:43: 32421835 22.04 09:03:11: 32591450 24.04 09:03:20: 32600365