“It's getting there.”
“No idea when it'll be done.”
That's been me for the last two weeks, and in reality I'm not sure that I'm much further along then I was 14 days ago. I'm supposed to be in charge of the “Agents” for the new monitoring system. Little programs (not php code) that will run on a couple of servers around the internet and keep tabs on all of our services/equipment, and report their findings back to the main system and trigger alerts when something breaks.
Development of the monitoring system is still proceeding, albeit slowly, and it's pretty much my own fault. Making the jump back into regular old C++ development to code the monitoring agent programs after all this time has proven to be a bit more of a challenge then originally thought. The problem, believe it or not, is that PHPi has spoiled me with it's easy to implement nature. 🙂 I find myself constantly going “What do you mean you can just do it *this* way?” and then tracking down some obscure method to do the exact thing I need to do. I cut my programming teeth on C, and at one point used to pretty much dream in C++, but the last few years I've done pretty much nothing but PHP work, and it's showing now that I'm trying to go back to my roots and knock out this “quick little project” (Last time I'll use *that* phrase)…
Right now I have a binary that runs, spawns itself as a daemon, and retrieves an XML configuration file from the monitor master every X seconds… oh, and it can store some configuration variables in a local file. Yippie. I haven't even gotten around to writing the actual service checks themselves yet. The problem of the day? I need to figure out how to take the contents of that XML file (A list of servers and services to watch, and details of each such as service type, how often to test them, what ports they run on, etc) and parse them out in a manner that I can use elsewhere in the program. I've been through one XML parsing library for C++ already trying to make it work, ultimately tossed it aside, and the second one is quickly making my head hurt just as bad. It's not that C++ has gotten “harder”, it's just that I'm way out of practice, and spoiled by the easy way everything flows in PHP, not to mention the sheer volume of information, libraries and resources out there for PHP compared to C++. Things that we take for granted in PHP (SimpleXML!) you end up scrounging around trying to find a library someone else cobbled together, or banging your head reinventing the wheel in C++.
Anyway, as a consolation prize, or perhaps as penance, the powers that be have decreed that I should post a blog entry sharing where we're at with the monitoring system, why it's not done yet, and share a couple of screenshots of what will, one day, become the monitoring system with everyone, to whet the appetite I suppose.
So here you go:
(Those of you with java reliable browsers only see one small little screenshot.. click it to blow it up bigger and see the other as well)
You'll notice the distinct lack of “Service Status” information on the first screen. Yeah, that is where the page is supposed to list all the pretty details as reported by my precious monitoring agents, but it's not… because there is no information… because I haven't finished them yet, so they can't report anything… oh well. Back to the drawing board.