9. Строковые функции

Все перечисленные здесь функции поддерживаются в:

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

Функция Описание
ascii Код ASCII самого левого символа значения.
bitlength Длина значения в битах.
bytelength Длина значения в байтах.
char Вернуть символ, интерпретируя значение как код ASCII.
concat Строка, получаемая в результате конкатенации упоминаемых значений элементов данных либо констант.
insert Вставить указанные символы или пробелы в символьную строку, начиная с указанной позиции в строке.
jsonpath Вернуть результат JSONPath.
left Самые левые символы значения.
length Длина значения в символах.
ltrim Удалить указанные символы с начала строки.
mid Вернуть подстроку из N символов, начиная с символьной позиции, указанной параметром «старт».
repeat Повторить строку.
replace Найти в значении образец и заменить его заменой.
right Самые правые символы значения.
rtrim Удалить указанные символы с конца строки.
trim Удалить указанные символы с начала и конца строки.
xmlxpath Вернуть результат XML XPath.

Подробности функций

Некоторые общие замечания о параметрах функций:

  • параметры функций разделяются запятыми
  • в качестве параметров допустимы выражения
  • строковые параметры должны заключаться в двойные кавычки; в противном случае они могут быть интерпретированы неверно
  • необязательные параметры функций (или части параметров) обозначаются угловыми скобками< >
ascii(значение)

Код ASCII самого левого символа значения.
Поддерживаемые типы значений: String, Text, Log.

Параметр:

  • значение — проверяемое значение

Например, значение «Abc» вернёт «65» (код ASCII для буквы «A»).

Пример:

ascii(last(/узел_сети/ключ))
bitlength(значение)

Длина значения в битах.
Поддерживаемые типы значений: String, Text, Log, Integer.

Параметр:

  • значение — проверяемое значение

Пример:

bitlength(last(/узел_сети/ключ))
bytelength(значение)

Длина значения в байтах.
Поддерживаемые типы значений: String, Text, Log, Integer.

Параметр:

  • значение — проверяемое значение

Пример:

bytelength(last(/узел_сети/ключ))
char(значение)

Вернуть символ, интерпретируя значение как код ASCII.
Поддерживаемые типы значений: Integer.

Параметр:

  • значение — проверяемое значение

Значение должно быть в диапазоне 0-255. Например, значение «65» (интерпретируемое как код ASCII) вернёт «A».

Пример:

char(last(/узел_сети/ключ))
concat(<значение1>,<значение2>,...)

Строка, получаемая в результате конкатенации упоминаемых значений элементов данных либо констант.
Поддерживаемые типы значений: String, Text, Log, Float, Integer.

Параметр:

  • значениеX — значение, возвращаемое одной из функций истории, либо константа (string, integer или float number). Должно содержать не менее двух параметров.

Например, значение вроде «Zab», объединённое с «bix» (строки-константы), вернёт «Zabbix».

Примеры:

concat(last(/узел_сети/ключ),"bix")
       concat("1 min: ",last(/узел_сети/system.cpu.load[all,avg1]),", 15 min: ",last(/узел_сети/system.cpu.load[all,avg15]))
insert(значение,старт,длина,замена)

Вставить указанные символы или пробелы в символьную строку, начиная с указанной позиции в строке.
Поддерживаемые типы значений: String, Text, Log.

Параметры:

  • значение — проверяемое значение;
  • старт — начальная позиция;
  • длина — заменяемых позиций;
  • замена — подставляемая строка.

Например, значение вроде «Zabbbix» будет заменено на «Zabbix», если «bb» (начиная с позиции 3, заменяемых позиций 2) заменяется строкой «b».

Пример:

insert(last(/узел_сети/ключ),3,2,"b")
jsonpath(значение,путь,<умолчание>)

Вернуть результат JSONPath.
Поддерживаемые типы значений: String, Text, Log.

Параметры:

  • значение — проверяемое значение;
  • путь — путь (должен быть заключён в кавычки);
  • умолчание — необязательное резервное значение на случай, если запрос JSONPath не возвращает данных. Обратите внимание, что при других ошибках возвращается сбой (например, «unsupported construct»).

Пример:

jsonpath(last(/узел_сети/proc.get[zabbix_agentd,,,summary]),"$..size")
left(значение,кол-во)

Вернуть самые левые символы значения.
Поддерживаемые типы значений: String, Text, Log.

Параметры:

  • значение — проверяемое значение;
  • кол-во — количество возвращаемых символов.

Например, можно вернуть «Zab» из «Zabbix», указывая для возврата 3 крайних слева символа. См. также right().

Пример:

left(last(/узел_сети/ключ),3) #возвращает три самых левых символа
length(value)

Длина значения в символах.
Поддерживаемые типы значений: String, Text, Log.

Параметр:

  • значение — проверяемое значение.

Примеры:

length(last(/узел_сети/ключ)) #длина последнего значения
       length(last(/узел_сети/ключ,#3)) #длина третьего из последних значения
       length(last(/узел_сети/ключ,#1:now-1d)) #длина самого свежего сутки назад значения
ltrim(значение,<символы>)

Удалить указанные символы с начала строки.
Поддерживаемые типы значений: String, Text, Log.

Параметр:

  • значение — проверяемое значение;
  • символы (опционально) — укажите удаляемые символы.

По умолчанию удаляются пробелы (если не указано опциональных символов). См. также: rtrim(), trim().

Примеры:

ltrim(last(/узел_сети/ключ)) #удалить пробелы с начала строки
       ltrim(last(/узел_сети/ключ),"Z") #удалить любые символы «Z» с начала строки
       ltrim(last(/узел_сети/ключ)," Z") #удалить пробелы и символы «Z» с начала строки
mid(значение,старт,длина)

Вернуть подстроку из N символов, начиная с символьной позиции, указанной параметром «старт».
Поддерживаемые типы значений: String, Text, Log.

Параметр:

  • значение — проверяемое значение;
  • старт — начальная позиция подстроки;
  • длина — количество позиций подстроки, которые нужно вернуть.

Например, можно вернуть подстроку «abbi» из значения «Zabbix», если указать начальную позицию 2, а длину 4.

Пример:

mid(last(/узел_сети/ключ),2,4)="abbi"
repeat(значение,кол-во)

Повторить строку.
Поддерживаемые типы значений: String, Text, Log.

Параметр:

  • значение — проверяемое значение;
  • кол-во — количество повторений.

Пример:

repeat(last(/узел_сети/ключ),2) #повторить значение дважды
replace(значение,образец,замена)

Найти в значении образец и заменить его заменой. Будут заменены все вхождения образца.
Поддерживаемые типы значений: String, Text, Log.

Параметр:

  • значение — проверяемое значение;
  • образец — искомый образец;
  • замена — строка, которой заменяется образец.

Пример:

replace(last(/узел_сети/ключ),"ibb","abb") — заменить все «ibb» на «abb»

Вернуть самые правые символы значения.
Поддерживаемые типы значений: String, Text, Log.

Параметры:

  • значение — проверяемое значение;
  • кол-во — количество возвращаемых символов.

Например, можно вернуть «bix» из «Zabbix», если указать возвращать 3 символа справа. См. также left().

Пример:

right(last(/узел_сети/ключ),3) #вернуть три символа справа
rtrim(значение,<символы>)

Удалить указанные символы с конца строки.
Поддерживаемые типы значений: String, Text, Log.

Параметр:

  • значение — проверяемое значение;
  • символы (опционально) — укажите удаляемые символы.

По умолчанию удаляются пробелы (если не указано опциональных символов). См. также: ltrim(), trim().

Примеры:

rtrim(last(/узел_сети/ключ)) #удалить пробелы с конца строки
       rtrim(last(/узел_сети/ключ),"x") #удалить любые символы «x» с конца строки
       rtrim(last(/узел_сети/ключ),"x ") #удалить любые символы «x» и пробелы с конца строки
trim(значение,<символы>)

Удалить указанные символы с начала и конца строки.
Поддерживаемые типы значений: String, Text, Log.

Параметры:

  • значение — проверяемое значение;
  • символы (опционально) — укажите удаляемые символы.

По умолчанию удаляются пробелы (если не указано опциональных символов). См. также: ltrim(), rtrim().

Примеры:

trim(last(/узел_сети/ключ)) — удалить пробелы с начала и конца строки
       trim(last(/узел_сети/ключ),"_") — удалить «_» с начала и конца строки
xmlxpath(значение,путь,<умолчание>)

Вернуть результат XML XPath.
Поддерживаемые типы значений: String, Text, Log.

Параметры:

  • значение — проверяемое значение;
  • путь — путь (должен быть заключён в кавычки);
  • умолчание — необязательное резервное значение на случай, если запрос XML XPath возвращает пустой набор узлов. Оно не будет возвращено, если пустой результат не является набором узлов (т.е. пустой строкой). При других ошибках возвращается сбой (например, «invalid expression»).

Пример:

xmlxpath(last(/host/xml_result),"/response/error/status")

См. все поддерживаемые функции.