NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: bobersl on March 19, 2015, 12:03:13 PM

Title: Как создать параметр на основе другого параметра
Post by: bobersl on March 19, 2015, 12:03:13 PM
По SNMP получил и дорасчитал текущую скорость интерфейса на свиче. Но хочу также увидеть эту загрузку в процентах. При этом запрашивать еще раз скорость интерфейса с устройства не хочу, чтобы не нагружать само устройство. Как на основе уже полученных данных получить загрузку интерфейса и в килобитах/мегабитах, и в процентах?
Title: Re: Как создать параметр на основе другого параметра
Post by: kozlov_ao on March 19, 2015, 12:25:09 PM
Создать отдельную метрику, которая будет получать значение скорости, раз в сутки например, и потом использовать ее значение как опорное, в других метриках...
Title: Re: Как создать параметр на основе другого параметра
Post by: bobersl on March 19, 2015, 12:36:59 PM
Quote from: kozlov_ao on March 19, 2015, 12:25:09 PM
Создать отдельную метрику, которая будет получать значение скорости, раз в сутки например, и потом использовать ее значение как опорное, в других метриках...
Пока так и не понял, как использовать данные из одной метрики в другой. Можно поподробней?
Title: Re: Как создать параметр на основе другого параметра
Post by: Tatjana Dubrovica on March 19, 2015, 12:57:33 PM
Это делаеться через скрипт.

Вот полезные функции для этого:
https://wiki.netxms.org/wiki/NXSL:GetDCIObject
https://wiki.netxms.org/wiki/NXSL:GetDCIValue

Сделать Internal dummy DCI со скриптом:

maxSpeed = n
return GetDCIValue($node, FindDCIByName($node, "current speed")) / maxSpeed
Title: Re: Как создать параметр на основе другого параметра
Post by: kozlov_ao on March 19, 2015, 12:59:34 PM
Как то так:
my_var = GetDCIValueByDescription($node, "DCI_Description");
Title: Re: Как создать параметр на основе другого параметра
Post by: bobersl on March 19, 2015, 01:40:39 PM
Спасибо. Все получилось.
Title: Re: Как создать параметр на основе другого параметра
Post by: bobersl on March 20, 2015, 10:00:34 AM
Возник вопрос. Вот такая строка в скрипте работает:
my_var = GetDCIValueByDescription($node, "DCI_Description");

Но если написать вот так:
sting s = "DCI_Description";
my_var = GetDCIValueByDescription($node, s);
то не работает. Можно ли передать в функцию переменную? Если можно, то как это реализовать?
Title: Re: Как создать параметр на основе другого параметра
Post by: Tatjana Dubrovica on March 23, 2015, 11:03:07 AM
https://www.netxms.org/documentation/adminguide/nxsl.html#variables

Попробуйте так:
s = "DCI_Description";
my_var = GetDCIValueByDescription($node, s);