| 61 | | `format=<string|hex|array>`:: Параметр позволяет устранить неоднозначность формата возвращаемого значения. Так как у плат блока MC04-DSL-3U отсутствует специальный тип для двоичных данных, для этих целей используется тип "строка". Как результат, при получении значения типа строка возникает неоднозначность - интерпретировать ли значение как текстовую строку или как двоичные данные (массив байт). По умолчанию (без указания параметра `format`) агент Zabbix принимает решение, анализируя полученное значение (подобно тому как это происходит в распространенных агентах SNMP): если в полученном значении присутствуют "непечатные" символы (байты с кодами меньше 32), то значение передается серверу Zabbix в формате HEX: как последовательность пар шестнадцатеричных цифр разделенных пробелами (например `23 fc 2b 02 00 e3 56`). В противном случае (если "непечатные" символы не обнаружены) значение передается серверу как текстовая строка (string). Указание параметра `format` позволяет однозначно задать формат, в котором агент будет передавать серверу значение переменной. Дополнительно у описанным выше форматам можно указать формат `array` - в этом случае значение переменной будет передано как JSON массив десятичных значений байтов (например `[35, 215, 41, 2, 0, 198, 4]`). Формат "array" удобен для пред-обработки значения сервером Zabbix с помощью JSONPath или !JavaScript. Обратите внимание, что при использовании параметра `format=string` текстовая строка может оказаться невалидной (например если в значении содержатся нулевые байты), в результате чего невалидным может оказаться JSON объект, передаваемый агентом серверу, что приведет к потере значения не только данного элемента, но и других, передаваемых агентом в том же сообщении. |
| | 61 | `format=<string|hex|array>`:: Параметр позволяет устранить неоднозначность формата возвращаемого значения. Так как у плат блока MC04-DSL-3U отсутствует специальный тип для двоичных данных, для этих целей используется тип "строка". Как результат, при получении значения типа строка возникает неоднозначность - интерпретировать ли значение как текстовую строку или как двоичные данные (массив байт). По умолчанию (без указания параметра `format`) агент Zabbix принимает решение, анализируя полученное значение (подобно тому как это происходит в распространенных агентах SNMP): если в полученном значении присутствуют "непечатные" символы (байты с кодами меньше 32), то значение передается серверу Zabbix в формате HEX: как последовательность пар шестнадцатеричных цифр разделенных пробелами (например `23 fc 2b 02 00 e3 56`). В противном случае (если "непечатные" символы не обнаружены) значение передается серверу как текстовая строка (string). Указание параметра `format` позволяет однозначно задать формат, в котором агент будет передавать серверу значение переменной. Кроме форматов `string` и `hex` можно указать формат `array` - в этом случае значение переменной будет передано как JSON массив десятичных значений байтов (например `[35, 215, 41, 2, 0, 198, 4]`). Формат "array" удобен для пред-обработки значения сервером Zabbix с помощью JSONPath или !JavaScript. Обратите внимание, что при использовании параметра `format=string` текстовая строка может оказаться невалидной (например если в значении содержатся нулевые байты), в результате чего невалидным может оказаться JSON объект, передаваемый агентом серверу, что приведет к потере значения не только данного элемента, но и других, передаваемых агентом в том же сообщении. |