Hello everybody, I’m Julian from CoreCode! I was recently contacted by Watchman Monitoring about updating their disk I/O Error and S.M.A.R.T. status Plugins, with code from SMARTReporter.
The I/O Error checking is more complicated than it looks at first. The obvious approach of asking the apple system log (ASL) facility about the I/O error messages posted recently doesn’t work well because ASL has proven to be unreliable. Relying on ASL can result in crashes on 10.5 and abysmal performance on even simple queries.
The developers at Watchman Monitoring were unsatisfied with their initial implementation of this plugin, as it would often fail to complete even after the 20 seconds the plugin was allowed.
Our new implementation, based on the code in SMARTReporter, changes everything. The Plugin I’ve created is completing in as little as 0.000168 seconds, [well below the 20 second timeout].
Due to the nature of Watchman Monitoring’s periodic operation, this new disk I/O error Plugin has advantages over the corresponding function in SMARTReporter. The Watchman Client is now able to check for errors on hot-pluggable (USB/FireWire) drives, as well as fixed media.
The Watchman Client’s new S.M.A.R.T. Plugin has also enjoyed the switch to SMARTReporter’s codebase. Now written in native code, we have improved the performance and reduced our memory footprint.
I want to thank Watchman Monitoring for hiring me to develop their new plugins (although the code from SMARTReporter is open and can be used without my permission or help) and I hope the new plugins will improve the Watchman Monitoring system.