Java Simon is a simple monitoring API that allows you to follow and better understand your application. Monitors (familiarly called Simons) are placed directly into your code and you can choose whether you want to count something or measure time/duration. Access to Simons is provided via static SimonManager. Check out our project page to learn more (downloads, docs, motivation, ...): http://code.google.com/p/javasimon/ In most cases you'll probably use Stopwatch to measure time spans - so let's briefly check what it can do: * it can measure time splits - parallel measurement is supported; * it provides total time, number of time splits, tracks max/min time, time stamps when extremes were measured, deviation, ...; * and like every Simon it tracks first/last usage time stamp - of course enable/disable and reset features are provided too. One additional bonus that comes with the API is JDBC Proxy Driver that out of the box provides nice performance overview of your DB layer. Why we brought in a new API when there is JaMON available? Well, we tried it with JaMON but than we wanted to crucial things that JaMON doesn't provide: * we wanted to measure time in nanoseconds (hence JDK 1.5 or higher is required); * we wanted all monitors to be organized somehow - so we implemented tree hierarchy similar to java.util.logging API - this provides powerful features like enable/disable/reset of the whole subtrees of this monitor hierarchy. Version 1.0 contains core functionality and we realize it lacks many important features in the bigger picture of application monitoring. Our plans in the future covers: * Declarative Simon configuration. * JMX access to Simons, their values and enable/disable features. * Sampling, collecting, agregating with persistence backend (file/DB). ...and probably more, but not all in the next major release. ;-)
- Posted by: Richard Richter
- Posted on: December 17 2008 08:58 EST
- Re: Java Simon 1.0, monitoring API, released by Cédrik LIME on December 17 2008 12:34 EST
- How does this differ from Apache Commons Monitoring by Jon Alvarado on December 17 2008 14:12 EST
Congratulation on your modernized JaMON clone! You may be interested to check out another monitoring utility, orthogonal to yours: MessAdmin. Instead of putting specific code in your application, MessAdmin gathers statistics on your application server automatically, and exports its data via an integrated administration application and/or via JMX. Its impact on performance is negligible at less than 0.3ms/request (on old gear) and about 600 bytes per HttpSession. In addition, you could very easily display your Simons (e.g. JDBC monitor log values) in a MessAdmin plugin. Get in touch with me if you want to learn more!
Thanks for congratulations ;-) - we were inspired by JaMON and we can't hide it, so I bear with the "clone" sticker even when we diverge from it a bit - but we're still on the very same field. MessAdmin looks really nice and obviously much more powerful than a simple servlet filter. We'll keep an eye on it - Java EE monitoring is important aspect even for us and this looks really interesting. We were not aware of commons monitoring (probably because it's in the sandbox) although we searched for other monitoring tools. Monitoring is gaining twist in recent years but still there is a lot of space to fill. We focused on narrow part now - explicit monitoring, that is part of your application. We knew JaMON is there, we didn't know about Commons Monitoring really. That's why I can't tell you what's different in our approach. I hope Simon is simple to use - but it has it's glitches because there are so many things to monitor and so many ways how to do that that it's not possible to cover all with one way. We used Simon in our application already, but we're eager to find out how it suits to others, what should be changed, etc.
Ignore the unnecessarily snarky FP. If it was not for people like you starting up alternative projects to the main stream, there would be no competition and no alternatives for people with different needs. Not to mention random "gotcha bugs" that appear on one project and not another for a small set of people! (they have no chance of being fixed usually) And you are very correct, there are many ways to do this and JAMon is by no means perfect. Commercial options are amazing, but most of us have no budget for this sort of thing unless we are lucky. (and this is usually spent by sys-ops on THEIR tools) Mentioning an apache app in the sandbox is a bit of a stretch also. Messadmin is an html-only monitor and thus is by no means a complete solution! In fact, it was the reason I went with jamon INSTEAD of messadmin. I needed the Spring AOP code injection as well as the html monitoring. I notice by browsing his other posts he is actually the MessAdmin creator?? This is just bad form. Take the competition like man, dude. A hu-man. hey, maybe even collaborate and co-support? Now there is a crazy idea?? I will definitely be checking out your project and best of luck!
How does this differ from Commons Monitoring, which is also a modernized Jamon clone? http://commons.apache.org/sandbox/monitoring/ It's nice to see focus on monitoring, as it helps immensely in diagnosing application issues.