It's been a while and I've been kind of slammed lately. I managed to
produce a full compliment of JSON-RPC server and client libraries a few
weekends ago (twisted.web, twisted.web2, and a TCP version using the
Netstring protocol), but that was it for free time.
However, pymon did pop into my mind this weekend. A few folks have
asked about service dependencies or network groupings, and I think I
have a nice and simple approach for supporting this. The feature that
they were looking for is best illustrated by an example. You have a
router at 10.4.28.1 and a whole series of machines/network devices
(potentially including more routers and subnets) behind this router.
You are monitoring the router 10.4.28.1 as well as dozens of devices
behind it, and when router goes down, you only want to be notified of
the router and not get potentially 100s of alert messages for the
devices behind it.
The number of ways networks can be configured/split up/etc. is too much
to program for, so I think the best solution is explicit, manual
"tagging" in the configuration: "This service check is a child of this
service check". Anything configured as a child will first check to see
if its parent is down before sending any messages. If the parent is
down, message sending is not performed.
A nice bonus for this approach is that the logic for this should be
fairly simple to write and thus should be a feature we can see
"shortly" :-)
d