Yes, i’m a person who likes to monitor things… as much as he can!
The 2 charts above show the memory usage of the Domotica system i created during the past 5 years. I like to think that this system, that is running it’s 135th version since august 2008, is able to keep on running for months, even years. But will it? Actually, i can’t tell. Do i catch all errors that can occur in a correct way? Do i anticipate on abnormal situations correctly? Does my system continue working if a subsystem fails? Those are all questions that are hard to answer. I mean, I think I’m doing OK cause I have had only 1 occasion of a total system breakdown in those 5 years, but… that very special situation i didn’t think of, can happen. And that situation will happen, some day. Does the name Murphy ring a bell? Hopefully this will not happen while I’m on vacation, where there are less-than-normal resources to fix the problem right away.
With more and more tasks being performed by my Domotica System and not being able to figure out anymore what special situations will be able to crash it, I’m residing to the more obvious ones, like monitoring things like memory usage, odd data being received and how it’s being handled, things like that. The 2 charts shown above represent how many kilobytes are being used and how many memory allocations are made in my system. I know, this only gives me some insight in how well i wrote my own code, but it also tells me how well it will perform over a period three times as long as the average ‘up time’ of my system (5 days) without any special situations. And, it also tells me how well it performs on anticipated problems, where error handling has to take control and make sure everything keeps working as expected. But no matter how well it anticipates a problem, anticipated or not: if my system runs out of memory it’s done… the system will stop unexpected and no ‘catch’ will resolve that issue. And that’s what I’m doing these days, amongst other things: monitoring my own Home Automation system; my own creation, me…
That’s the best i can do without trying to think of (and test) all scenarios my system will face while I’m away. That’s just not doable anymore, with so many different interfaces.
BTW, despite all the negative thinking above: it’s looking good; and just like the last 4 years, it will perform just fine 🙂