Hey all. I was bored this past weekend so I created a new plugin for APC UPS monitoring. The code is packaged into an Uptime plugin now and has been installed and tested in our demo lab. It is available on Github here as a plugin ZIP download
Currently it will require manual installation until it is "approved" and added to "the grid" and the product's built in plugin install functionality. I'd like to do a little more research on how / if the values I pull change from model to model prior to that happening. The SNMP OIDs I am using are supposedly common across all APC branded UPS systems (but I never take that for granted). Current functionality includes:
1. checks that a connection to SNMP can be made. if not, no further effort is made and the monitor fails. This is to prevent long timeouts and delays that soak up cycles and slow down the data collection if there is an issue.
2. checks that the device being tested against IS ACTUALLY an APC product. If not it will fail.. similar reasons to #1…
3. Pulls power state. If that succeeds, pulls charge level of the batteries, remaining run time, as well as percentage of load on the unit. If power state can't be pulled, the monitor fails, similar reasons to #1.
4. outputs 5 things. The integer based status message, exactly as it is seen on the APC device. Useful for graphing, not so much for alerts. A "human readable form" of the power state, this is really for alert messages. When on battery this message says the current charge, load, and time remaining, so everything in one message. Again, convenient for alert functionality. The rest is great individually for graphing and trending, load, minutes remaining, charge percent…
Here is an example dashboard I created real fast:
At the time of writing this, I am the support engine for this thing. Once it gets "validated" or "approved" or whatever words you'd like to use, Idera will support it (assuming that happens… why wouldn't it?)
For those of you asking, what about temperature, what about input and output frequency and voltage? Voltage is probably legit as is temperature. Available metrics may differ on different devices so I wanted to do a more narrow monitor. Sure, it would have been (and is.. ie feel free to) easy to add them. Frequency, well, THAT shouldn't change right? 50 or 60 hertz folks… This is along the lines of "Pragmatic Monitoring" again… But hey, I could be wrong. If temp and hertz are important to you, drop me a comment. Any feedback is always welcome.
Now for the how-to install / uninstall bit, since this one isn't available for direct install via the UI. it is actually quite simple.
1. Download the zip and unpack into the uptime folder ie: c:program filesuptime softwareuptime it will ask if you want to overwrite the plugins and scripts folders, just say yes. This just copies the stuff needed for the plugin into the proper spots.
2. Next, move APC-UPS-Monitor.xml into the uptimexml folder.
3. Open a command prompt as administrator
4. Navigate to uptimescripts and run
erdcloader.exe -x "c:program filesuptime softwareuptimexmlAPC-UPS-Monitor.xml"
5. The plugin should now be added into uptime and available in the add service monitor dialogue, under "Network Device Monitors" as APC UPS Monitor.
To remove the plugin, ensure any service monitors using it have been deleted, then, in an administrative command prompt, from the uptimescripts directory, run
erdcdeleter -n "APC UPS Monitor"