Hello together,
is there a way to use attributes of the current DCI within a transformationscript?
For example getting the name-attribute and building out of this an oid with an value that was requested in an other DCI.
Best regards
Georg
$1 - current value (last polled)
if you want use another dci in curent dci see this http://wiki.netxms.org/wiki/NXSL_Function_Reference#Data_Collection
Sorry but I hove to clarify the question. I want to do the following with the Transformatinscript of the DCI
I have an DCI with parameter:
.1.3.6.1.2.1.31.1.1.1.10.10201
from that parameter/name I want to build the parameter
.1.3.6.1.2.1.2.2.1.5.10201
to find the corresponding DCI by GetDCIValueByName that has requested the interface speed.
With this information I want to calculate the percentage value for the usage of the interface within the transformormationscript.
mmm?
sub main()
{
if ($node->isSNMP)
{
transport = CreateSNMPTransport($node);
if (transport == null)
{
return -1;
}
ifspeed = SNMPGetValue(transport, ".1.3.6.1.2.1.2.2.1.5.10201"); // get if speed
if (ifspeed != null)
{
//you can use "case/switch" if have y have many params
if (ifspeed == "blablabla") //change blabla bla string. see mib, i don't know how it on cisco
{
return (($1*8)/(1 << 20)); //transform bytes to megabites
}
else
{
return $1; //return default value
}
}
}
}
Not really what I want to do.
Within transformationscript some pseudocode now
sub main()
{
pos = rindex(trim($dci->name),".");
len = length(trim($dci->name)) - pos;
port = right($dci->name,len);
snmpoid = ".1.3.6.1.2.1.2.2.1.5.".port;
speed = GetDCIValueByName($node,snmpoid);
result = (($1*8)*100)/speed;
return result;
}
the meaning of $dci in this example would be the same as with $node refering to the current DCI.
Quote from: gkaudewitz on October 12, 2012, 02:01:01 PM
Not really what I want to do.
Within transformationscript some pseudocode now
sub main()
{
pos = rindex(trim($dci->name),".");
len = length(trim($dci->name)) - pos;
port = right($dci->name,len);
snmpoid = ".1.3.6.1.2.1.2.2.1.5.".port;
speed = GetDCIValueByName($node,snmpoid);
result = (($1*8)*100)/speed;
return result;
}
the meaning of $dci in this example would be the same as with $node refering to the current DCI.
$dci object added in 1.2.4 dev version (http://svn.netxms.org/public/netxms/trunk/ChangeLog)
how get snmp y see in my script.
i'm recomend write script in script library and using functions with "use" operator.
Now we have same understanding of my problem.
Thanks for the information concerning $dci.
This will simplify the tasks concerning calculation of values for me. Because I don't want generating an extra snmprequest each time the octet-value is requested.
Thanks for the help!
Quote from: gkaudewitz on October 15, 2012, 05:09:29 PM
Now we have same understanding of my problem.
Thanks for the information concerning $dci.
This will simplify the tasks concerning calculation of values for me. Because I don't want generating an extra snmprequest each time the octet-value is requested.
Thanks for the help!
if portspeed is constant you can write array with each port information in the script.
Is the $dci object added in final version of 1.2.4?
Yes, it is available in 1.2.4.
Best regards,
Victor
Quote from: gkaudewitz on December 13, 2012, 06:42:26 PM
Is the $dci object added in final version of 1.2.4?
and in 1.2.4 added multipliers for charts.
and y need only transform bytes to bites