JEE Monitoring schnell und einfach mit JavaMelody

Dass das Überwachen von Anwendungen im Test- und Produktivbetrieb wichtig ist, ist jedem klar. Nur bleibt in der Praxis kaum Zeit eine passende Lösung zu finden und einzurichten. Wer Glück hat, bekommt die Funktionalität von seinem, dann aber meist ziemlich teuren, Anwendungs-Server spendiert. Wer aber auf Lösungen wie JBoss, GlassFish oder Tomcat setzt muss selbst aktiv werden. Kein Problem: Denn mit JavaMelody lässt sich Monitoring in Java- und JEE-Server-Anwendungen schnell und einfach integrieren.

JavaMelody

JavaMelody ist eine LGPL-lizenzierte Open-Source Anwendung für das Monitoring von Java- und JEE-Server-Anwendungen. Es wird einfach in die zu überwachende Anwendung integriert und ist dann über ein Web- und Desktop-Interface verfügbar. Alternativ lässt sich auch ein zentraler Server einrichten, der die Ergebnisse mehrerer JavaMelody-Instanzen einsammelt.

Diagramme

Standard-Diagramme auf der Startseite

Von der wirklich nicht besonders schönen Oberfläche sollte man sich nicht abschrecken lassen, denn der Funktionsumfang ist beachtlich:

  • Überwachung der System-Auslastung, also CPU, Speicher, Threads, Garbage Collection, …
  • Überwachung von HTTP-Requests, inkl. Antwortzeiten, CPU-Auslastung, Größe, …
  • Überwachung der Anzahl und Dauer SQL-Statements, dadurch lassen sich beispielsweise auffällig oft ausgeführte Selects finden
  • Überwachung der Anzahl und Dauer von Methodenaufrufen an „Business-Objekten“. Unterstützt werden dabei EJBs, Spring und Guice.
  • Cache-Statistiken
  • Zugriff auf MBeans

JavaMelody sammelt die erfassten Daten persistent und über einen beliebig langen Zeitraum. Die gemessenen Werte lassen sich dann in Statistiken auswerten. Problemen wie potentiellen Memory Leaks kommt man dank nach Zeiträumen darstellbaren Diagrammen schnell auf die Spur. In sortierbaren Tabellen findet man beispielsweise besonders langsame SQL-Statements; eine „beliebte“ Quelle von Performance-Problemen.

HTTP-Statistiken

Details der HTTP-Statistiken

Wichtig ist noch zu beachten, dass JavaMelody kein Profiler ist. Dadurch fehlen natürlich einige tiefergehende Daten. Die Entscheidung der Entwickler ist aber sinnvoll da ein Profiler im Produktivbetrieb wegen den starken Performance-Nachteilen meistens nicht eingesetzt werden kann.

Installation

Aber genug Theorie und Vorstellung, viel interessanter ist es natürlich das Tool im Einsatz zu sehen und in eine eigene Anwendung zu integrieren. Das geht mit JavaMelody erfreulich schnell:

  1. Aktuelles Archiv herunterladen
  2. javamelody.jar und jrobin.jar entpacken
  3. Die Jars je nach Projekttyp entweder in das „WEB-INF/lib“-Verzeichnis des Webprojekts oder, bei einem EAR-Archiv, in das allgemeine lib-Verzeichnis kopieren
  4. Bei älteren Web-Projekten die noch nicht die Servlet-API in Version 3.0 oder neuer verwenden, muss jetzt noch die web.xml erweitert werden:
  5. Das war es auch schon. JavaMelody ist jetzt unter „http://[host]/[anwendung]“ verfübar.
  6. Zumindest war es das fast. Bei einigen Application Servern wie GlassFish 3 oder JBoss 7 muss noch etwas nachgeholfen werden, da sonst JavaMelody nicht oder nur teilweise funktioniert. Details dazu finden sich im „Advanced User’s Guide„.

Soll JavaMelody auch EJBs überwachen, muss dies noch aktiviert werden. Dies geschieht nicht automatisch, da es mit leichten Performance-Einbußen verbunden ist. Dazu wird ein Interceptor in der ejb-jar.xml eingebunden:

Dank des beeindruckenden Funktionsumfangs und trotzdem minimalem Overhead und Installationsaufwand, ist JavaMelody ein von uns gerne verwendete Komponente in Technologie-Stacks. Gerne setzen wir es auch in für Sie entwickelter Software ein oder helfen Ihnen dabei es in Ihre bestehenden Java-Programme zu integrieren. Für das Überwachen von Server-Hardware, -Betriebssystemen, Netzwerken und Oracle-Datenbanken bieten wir außerdem unsere Monitoring-Lösung Guard & Alarm an.

Getagged mit: , , , , , ,

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

* Copy This Password *

* Type Or Paste Password Here *