Java Performance Tuning

Java(TM) - see bottom of page

|home |services |training |newsletter |tuning tips |tool reports |articles |resources |about us |site map |contact us |
Tools: | GC log analysers| Multi-tenancy tools| Books| SizeOf| Thread analysers| Heap dump analysers|

Our valued sponsors who help make this site possible
JProfiler: Get rid of your performance problems and memory leaks! 

Training online: Concurrency, Threading, GC, Advanced Java and more ... 

Javva The Hutt October 2010

Get rid of your performance problems and memory leaks!

Modern Garbage Collection Tuning
Shows tuning flow chart for GC tuning

Java Performance Training Courses
COURSES AVAILABLE NOW. We can provide training courses to handle all your Java performance needs

Java Performance Tuning, 2nd ed
The classic and most comprehensive book on tuning Java

Java Performance Tuning Newsletter
Your source of Java performance news. Subscribe now!
Enter email:

Training online
Threading Essentials course

Get rid of your performance problems and memory leaks!

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 feel free to connect me, my email as javva@ this java performance domain).

Back to newsletter 119 contents

Last Updated: 2024-03-29
Copyright © 2000-2024 All Rights Reserved.
All trademarks and registered trademarks appearing on are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries. is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.
RSS Feed:
Trouble with this page? Please contact us