Strange SNMP behavoir

Recently we started to roll out a probe we set-up a while ago which seemed to work well on our test systems and we published the info in the probes thread. The probe was to check disk space on a windows system.
I have included the current probe settings and function settings below, we are using V3.4 of The Dude.

What seems to be happening is that the reported disk space is all over the place, sometimes returning 0, other times returning negative numbers like -8000 when there is 30GB free on the drive. At these points in time other SNMP checks on the same box continue to return valid information and correct figures.

I was hoping that somebody may have suggestions as to a cause for this strange behaviour. I do believe the probes are OK because they work most of the time, but randomly they just seem to give false information and then fix themselves mysteriously.

We have polling configured to probe every 30 secs with a timeout of 30 secs and a down count of 10.
This does seem to get worse when our links are a bit busy, not flat out though, the servers which we are monitoring are outside the network on Dude box is on.


Function:


if(
string_find(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),“C:”)<>4294967295,

string_substring(((
oid(concatenate(“iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageSize.”,
array_find(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),
string_substring(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),
string_find(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),“C:”),
(
string_find(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),“,”,
string_find(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),“C:”))
-string_find(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),“C:”
)
)))+1))*4096

oid(concatenate(“iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.”,
array_find(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),
string_substring(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),
string_find(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),“C:”),
(
string_find(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),“,”,
string_find(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),“C:”))
-string_find(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),“C:”
)
)))+1))*4096
)

/

(
oid(concatenate(“iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageSize.”,
array_find(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),
string_substring(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),
string_find(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),“C:”),
(
string_find(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),“,”,
string_find(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),“C:”))
-string_find(oid_column(“1.3.6.1.2.1.25.2.3.1.3”,600),“C:”
)
)))+1))*4096
))

*100
, 0, 4)

,
“”
)



Probe:


Available: win_diskc_free_percent() > 10
Error: if(win_diskc_free_percent() < 10, concatenate("Low Disk Space C: ", win_diskc_free_percent(), “%”), “”)
Value: win_diskc_free_percent()
Unit: %
Rate: None


Regards
Paul

After comparing a few more probes and bandwidth figures it seems that this may be caused by link utilisation for some reason.
The link which the SNMP data is traversing at the moment is running between 150 and 300ms response time, but no packets being dropped, and I have changed the SNMP timeout for the profile I am using in the Dude to 10 retries with a 10000ms timeout which should be way more than it needs.

Regards
Paul