7. Символы единиц измерения

Обзор

Использование каких-либо больших чисел, например, «86400» для представления количества секунд в сутках, бывает затруднительно и чревато ошибками. Вот почему вы можете использовать некоторые соответствующие символы единиц измерения (или суффиксы) для упрощения выражений триггеров и ключей элементов данных в Zabbix.

Вместо «86400» вы можете ввести просто «1d». Суффиксов выполняют функцию множителей.

Суффиксы времени

Для указания времени вы можете использовать:

Суффиксы времени поддерживают только целые числа (поэтому «1h» поддерживается, а «1,5h» или «1.5h» — нет; используйте вместо этого «90m»).

Суффиксы времени поддерживаются в следующих местах:

  • константы и параметры функций выражений триггеров
  • константы формул вычисляемых элементов данных
  • параметры внутренних элементов данных zabbix[queue,<от>,<до>]
  • параметр период времени агрегированных вычислений
  • настройка элементов данных (поля «Интервал обновления», «Пользовательские интервалы», «Период хранения истории» и «Период хранения динамики изменений»)
  • настройка прототипов элементов данных (поля «Интервал обновления», «Пользовательские интервалы», «Период хранения истории» и «Период хранения динамики изменений»)
  • настройка правил низкоуровневого обнаружения (поля «Интервал обновления», «Пользовательские интервалы», «Период сохранения потерянных ресурсов»)
  • настройка сетевого обнаружения (поле «Интервал обновления»)
  • настройка веб-сценария (поля «Интервал обновления», «Время ожидания»)
  • настройка операции действия ( поля «Длительность шага операции по умолчанию», «Длительность шага»)
  • настройки профиля пользователя (поля «Авто-выход», «Обновить», «Время отображения сообщения»)
  • виджет графика в разделе МониторингПанель (поле «Сдвиг по времени»)
  • АдминистрированиеОбщиеОчистка истории (поля периодов хранения)
  • АдминистрированиеОбщиеОпции отображения триггеров (поля «Отображать триггеры в состоянии ОК в течение», «Мигание триггеров при изменении состояния»)
  • АдминистрированиеОбщиеДругое (поле «Интервал блокировки входа в систему» и поля, относящиеся к взаимодействию с Zabbix сервером)
  • опция управления работой Zabbix сервера ha_set_failover_delay=задержка

Суффиксы памяти

Суффиксы размера памяти поддерживаются в следующих местах:

Для размера памяти вы можете использовать:

  • К — килобайт
  • M — мегабайт
  • G — гигабайт
  • T — терабайт

Суффиксы значений элементов данных

Суффиксы также могут использоваться для отображения числовых значений элементов данных в удобном для восприятия формате.

Чтобы включить это, используйте один из следующих суффиксов в поле Единицы измерения при настройке элемента данных:

  • B — байты
  • Bps — байты в секунду
  • s — секунды, отображаются с использованием до трёх самых больших ненулевых единиц времени
  • uptime — прошедшее время в формате «чч:мм:сс» или «N дней, чч:мм:сс»
  • unixtime — отметка времени Unix, отформатированная как «гггг.мм.дд чч:мм:сс»

К тому, каким образом эти суффиксы интерпретируются и отображаются, применяются следующие дополнительные правила :

  • Для «B» (байты) и «Bps» (байты в секунду) Zabbix использует преобразование с основанием 2 (1K = 1024B), следуя стандарту JEDEC [en].
  • Для остальных единиц (таких как Гц, Вт и т. д.) Zabbix использует преобразование по основанию 10 (1K = 1000).
  • Для «s» (секунды):
    • Формат включает «ггг ммм ддд ччч ммм ссс мс»; отображаются только до трёх самых больших ненулевых единиц времени (например, «1M 10д 4ч»).
    • Если единица равна нулю и находится между двумя ненулевыми единицами, она опускается (например, «10д 56м» вместо «10д 0ч 56м»).

При использовании Единиц измерения к значениям элементов данных автоматически применяются следующие суффиксы множителей:

  • K, M, G, T — кило, мега, гига, тера
  • P, E, Z, Y — пета, экса, зетта, иотта (эти применяются только в веб-интерфейсе)

Примеры использования

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

last(/host/system.uptime)<86400s
       avg(/host/system.cpu.load,600s)<10
       last(/host/vm.memory.size[available])<20971520

можно заменить на:

last(/host/system.uptime)<1d
       avg(/host/system.cpu.load,10m)<10
       last(/host/vm.memory.size[available])<20M

Значения элементов данных также можно преобразовать, например:

1 B → 1 B
       1024 B → 1 KB
       1536 B → 1.5 KB
       881764 B → 881.76 KB
       
       0.0000155 s → 0.016мс
       3470400 s → 1М 10д 4ч
       2606400 s → 1М 4ч
       2592000 s → 1М
       2592001 s → 1М
       
       17764 uptime → 04:56:04
       86400 uptime → 1 день, 00:00:00
       881764 uptime → 10 дней, 04:56:04
       32417764 uptime → 375 дней, 04:56:04
       
       881764 unixtime → 1970-01-11 04:56:04 AM
       
       17764 Hz → 17.76 KHz
       86400 Hz → 86.4 KHz
       881764 Hz → 881.76 KHz
       32417764 Hz → 32.42 MHz

Предотвращение преобразования единиц измерения

По умолчанию указание единицы измерения для элемента данных приводит к добавлению префикса множителя — например, входящее значение «2048» с единицей измерения «B» будет отображено веб-интерфейсом как «2КB» (для получения более подробной информации смотрите Единицы измерения в настройках элемента данных).

Чтобы предотвратить преобразование единиц измерения, используйте префикс !, например, !B. Чтобы лучше понять, как работает преобразование с восклицательным знаком и без него, посмотрите следующие примеры значений и единиц измерения:

1024 !B → 1024 B
       1024 B → 1 KB
       61 !s → 61 s
       61 s → 1m 1s
       0 !uptime → 0 uptime
       0 uptime → 00:00:00
       0 !! → 0 !
       0 ! → 0

До версии Zabbix 4.0 существовал жёстко закодированный чёрный список единиц измерения, который состоял из ms, rpm, RPM, %. Этот чёрный список считается устаревшим, поэтому правильным способом предотвратить преобразование подобных единиц измерения является !ms, !rpm, !RPM, !%.