Become the Zenoss user at the command line and launch zendmd. Once you're in zendmd, execute this code (replace YourDevice with the name of your device)...
d = dmd.Devices.findDevice('YourDevice')
for f in d.os.filesystems():
print '%s: %s' % (f.name(), f.getTotalBlocks())
I'm pretty stumped at this point since we've just proven that the getTotalBlocks() function is working fine for those filesystems. The only possible things that I can think of are that the device either needs a remodel because something just isn't right with those components, or the RRD for the filesystem didn't get created for whatever reason (could be due to a bad OID meaning it needs a remodel).
I am wondering if it is the RRD files, I wonder if there is a way to force it to recreate the RRD files.....
You need to navigate to $ZENHOME/perf/Devices as the zenoss user at the commandline and check to see if there are RRD files for that filesystem under $ZENHOME/perf/Devices/YourDevice/os/filesystems. If there are, you can try removing them. If there aren't then you should try running zenperfsnmp on the device to see if it creates them (and see any errors that may be preventing it from doing so).
zenperfsnmp run -v10 -d YourDevice
thank you for your patience and help I do appreciate it, looks like I have a really tricky issue .
Anyone else have any ideas?
The only way I could figure this out is if I had access to your Zenoss install. It's too difficult to troubleshoot something like this over a forum. You might want to try the IRC channel, maybe someone in there has some ideas about it, but I'm fairly certain they'll just have you run through checking the same things that I had you check. That error indicates that it's unable to get here.totalBlocks() * .90, but that function worked when we tested it in zendmd. The only thing that I can think of is that the template somehow got bound somewhere that it shouldn't have and here.totalBlocks doesn't exist on what it's bound to.
IRC channel: irc.freenode.net - #zenoss
Hmmmm if i could write a script to check each host for template bindings..
FYI that someone in #zenoss ran in to this same issue today so I did some troubleshooting with them. It looks like here.getRRDValue doesn't work properly on thresholds for components but works fine in regular device templates. I'm not sure whether this is a bug or deliberate. I'll see if I can nab a developer to ask them.
Ok, thanks for that. I just found a an error in the error.log file today:
2012-06-13T12:42:54 ERROR RenderServer Failed to generate a graph
Traceback (most recent call last):
File "/opt/zenoss/Products/ZenRRD/RenderServer.py", line 155, in render
error: Could not make sense out of 'usedBlocks-rpn'
That happens anytime I try to view the filesystem graphs on my linux hosts.
Hmmm, is the device that you're seeing the error on on a collector?
Ok so I see 2 different symptoms.... On the zenoss server I see errors under events that complain about the python expression and it is reported to be on occuring on the zenoss server itself, next I actually see errors for the graphs not being generated for each server that zenoss is monitoring. Does that make sense?
when i run:
zenperfsnmp run -v 10 -d <hostname> I get:
WARNING zen.zenperfsnmp: Error reading value for "usedBlocks" on <hostname> (oid .184.108.40.206.220.127.116.11.3.1.6 is bad)
Can you pastebin the full output of that command and post the link to it here? I need to see everything that it's doing leading up to that to tell you what the issue is.