I have been working on a SNMP Free memory % transform script and I have found few examples that I can't get to work and I am not sure what I am doing wrong.
I have created a DCI parameter for total memory for the device, and another DCI for the free % transform as shown here.
memTotalReal, OID parameter - .1.3.6.1.4.1.2021.4.5.0
Memory Free %, OID parameter - .1.3.6.1.4.1.2021.4.6.0
I get the correct value for the Total Memory DCI, and on the second DCI for free % I apply this transform script:
sub main()
{
total = GetDCIValue($node, FindDCIByName($node, "memTotalReal"));
return $1 / total * 100;
}
However, I only get the value of the DCI SNMP poll as if I didn't do any tranform. So it does not seem to be returning the correct value.
Can anyone tell me what I am doing wrong?
netxms 2.0M4
The function you want to use is probably FindDCIByDescription (https://wiki.netxms.org/wiki/NXSL:FindDCIByDescription) and then GetDCIValue (https://wiki.netxms.org/wiki/NXSL:GetDCIValue).
Or just use GetDCIValueByDescription (https://wiki.netxms.org/wiki/NXSL:GetDCIValueByDescription);)
Thank you tomaskir, I replaced "FindDCIByName" with "FindDCIByDescription" and that did the trick.