mercredi 2 février 2011

Monitoring with JavaMelody

Je vais vous parler d'un outil de monitoring de webapp : JavaMelody, hebergé sur Google Code.

Il permet de monitorer la conso mémoire, CPU, les connexions HTTP/S, les connexions JDBC, les requêtes SQL, les threads, les classes, le garbage collector etc.
Tout y passe :o)

Les prérequis sont minimes : JRE 1.5, Tomcat 5.5, GlassFish 2, JBoss 4, Jonas 4, Jetty 6, WebLogic 9. Les versions supérieures passent sans problème (hormis l'intégration avec Tomcat7 en cours de validation)

Accessoirement, il est même possible de monitorer du Hudson(Jenkins), JIRA, Confluence, Bamboo(connais pas), Grails.

Concernant le monitoring d'une webapp, il y a très peu de modification à faire du coté du WAR (ou EAR). Dans mon cas, j'ai juste rajouter deux 2 libs, modifier le web.xml, l'applicationContext (si on fait du Spring comme moi), l'hibernate.cfg.xml (si on fait du Hibernate). Ça gère même les EJB 3, Struts 2, Guice, Quartz.

En 15 minutes, vous monitorez toute votre application.

La documentation officielle est très claire (et l'installation est méga simple) :
http://code.google.com/p/javamelody/wiki/UserGuide?tm=6#Setup

Allez voir les captures d'écrans afin de vous rendre compte de la quantité d'informations que l'on peut obtenir simplement avec JavaMelody.

PS : JavaMelody est "production ready" :o)
PS : Il peut se plugger avec Nagios ;o)

2 commentaires:

Anonyme a dit…

Bonjour, quelle est la différence avec Nagios

Nabil BEN YOUSSEF a dit…

Nagios doit être vu comme un agrégateur de monitoring : il collecte des chiffres de statistiques mis à disposition par des scripts, des plugins nagios, etc... et les consolident et alertent les personnes.

Pour Tomcat, Nagios ne peut juste s'interfacer qu'au niveau JMX. Nagios ne peut pas attaquer une webapp simplement : il faut lui mettre à disposition des plugins (des sortes d'interfaces comme des urls par exemple) qu'il attaquerait pour recuperer les chiffres.

Categories