Всем привет!
Есть IP камера. Камера отдаёт uptime и количество IP пакетов. Как теперь поделить последнее на первое с целью получения текущей скорости пересылки пакетов?
добавить transformation script по примеру такого:
return $1 / GetDCIValueByName($node, "System.CPU.Count");
$1 - текущее значение DCI, "System.CPU.Count" в этом примере – имя второго DCI, надо заменить на нужное.
Спасибо!
Как я понял, GetDCIValueByName должен ссылаться на параметр из DataCollection? Т.е. если этого параметра в этом списке нет, то идёт ошибка - Value is NULL.
Ещё вопрос - где можно посмотреть значения $1...$9 и всех прочие функции?
Quoteдолжен ссылаться на параметр из DataCollection
Да, именно так.
QuoteТ.е. если этого параметра в этом списке нет
А зачем дергать данные из параметра, которого нет??
Quoteгде можно посмотреть значения
За ХЗ сколько лет работы с NX, пользовался только $1... а вообще, описание макросов есть тут: https://wiki.netxms.org/wiki/UM:Event_Processing#Macros_for_Event_Processing
Почему параметра нет? Он есть. Но только не в DataCollection)))
Тогда такой вопрос - в DataCollection все значения собираются в разное время. А как бы их синхронизировать? К примеру, в проце 12 ядер. Мы получаем все значения в разное время, а для вычисления средней загрузки процессора лучше их получить с минимальным разбросом по времени.
QuoteНо только не в DataCollection
а где? :) приведенное Алексом выражение ищет данные в пределах ноды.
QuoteА как бы их синхронизировать?
вроде никак.. ну либо подгонять по времени )) Есть же параметр, который вычисляет среднюю загрузку проца по всем ядрам сразу.
На мой взгляд, если надо подгонять по секундам – то что-то не так в постановке задачи, её надо как-то иначе решать.
Примерно подогнать можно при помощи custom schedule c правилом "* * * * *", запросы будут шедулиться раз в минуту, в 00 секунд. Но это не гарантирует, что их соберут именно в это время.
Дак в том то и дело...
Можно еще сделать scripted DCI с кодом типа val1=AgentReadParameter($node, "Sample.DCI(1)");
val2=AgentReadParameter($node, "Sample.DCI(2)");
...
Quote from: kozlov_ao on April 18, 2015, 09:49:10 AM
Есть же параметр, который вычисляет среднюю загрузку проца по всем ядрам сразу.
Ну вот на каких-то машинах он доступен, на каких-то нет. Параметр System.CPU.Usage5. Если его добавить вручную, то получаю Unsupported...
Какая операционная система?
Quote from: parovoZZ on April 20, 2015, 11:32:42 AM
Ну вот на каких-то машинах он доступен, на каких-то нет. Параметр System.CPU.Usage5. Если его добавить вручную, то получаю Unsupported...
Windows Server 2008 Build 6001 Service Pack 1 Intel IA-32
Не... нужна ОС машин, на которые есть параметр и на которых нет...
Абсолютно такая же ось...
У меня ещё вопрос.
Нельзя ли в сообщение события вставить значение параметра SNMP? Т.е. %2 - это ссылка на Description, а нельзя ли в само поле Description вставить ссылку на параметр?
Ниче не понял :)
Вот, смотри что тебе нужно:
%1 - Parameter name
%2 - Item description
%3 - Data collection item ID
%4 - Instance
%5 - Threshold value
%6 - Actual value