|
|
|
Back to newsletter 119 contents | All Javva's articles
We have implemented our first monitoring framework for our performance management service. I decided to start at the bottom, with service level agreements (SLAs). But I didn't want them in a document languishing somewhere, I wanted living, breathing, actively monitored and managed targets. So after the first step of actually getting various projects to say what bits of their app matters performance-wise, and then sucking the relevant targets out of the various stakeholders (like getting blood from a stone - why does that whole process have so many vampiric references? I dunno, I just couldn't kill them.), we implemented a framework that gets injected into the projects and monitors the precisely defined SLAs, all of which are maintained in our central database and accessible by URL (so only needing proxy authentication to access from anywhere in the organization).
So what happens when the SLA is violated? Well, naturally, it needs to be logged. Did you know that practically
every project has a logging layer that will log exceptions for you? log(Level, String, Throwable)
or equivalent.
The nice thing about an exception is that you get a contextual stack trace if you create it at the right place -
you don't have to throw the exception, just create it. So we do. If the SLA is violated, we create a
NotFastEnoughException. I did a google search, and there were no results for that exception (of course there will
be once this gets published), so that's a world first. I, Javva The Hutt, lay claim to having invented the
NotFastEnoughException. And I graciously permit you all to use it, no royalties necessary. Yes, I am magnanimous.
The brilliant thing about the NotFastEnoughException is that management get cowed by it. If I go along and tell them that their system is violating their SLAs, they don't really care. I mean they do, sort of, but it's pretty low priority unless someone important is screaming about something being too slow. And I'm not important. The SLA is just a tick box on the audit trail of management exploration. But, if I go along and say their system is continuously throwing NotFastEnoughExceptions and that one of my primary globally visible reports is the number of NotFastEnoughExceptions thrown by the various projects, they want it fixed. Ooh, you aren't saying 'big deal' any more about my NotFastEnoughException now, are you? Yes, I can hear the applause.
To which I can only say: Fang you very much.
BCNU - Javva The Hutt. (LinkedIn profile http://www.linkedin.com/in/javathehutt feel free to connect me, my email as javva@ this java performance domain).
Back to newsletter 119 contents