Skip to content

REST JMX Monitoring

2011 Mai 3
tags: , ,
by Haf

Ich bin wieder auf der JAX und auch bei Adam Bien. Beides ist nur zu empfehlen! 😉
Während des Workshops kamen wir auf REST und JMX und das es eigentlich eine gute Idee wäre, JMX Monitoring mittels REST anzubieten.
Klingt interessant. Sofort ausprobiert.

Mit Eclipse mal fix ein dynamisches Webprojekt erstellt. Drauf geachtet, dass REST (JAX-RS) ausgewählt wird. Glassfish ist schon vom letzten Projekt in Eclipse integriert.
Während der Projekterstellung bietet der Wizard u.a. die Konfiguration für REST an. Da kann u.a. das URL matching pattern eingeben werden (default: /rest/*)

Als erstes erstellen wir eine REST-Klasse die alle MBeans auflisten.

Glassfish starten. URL http://localhost:8080/JmxMonitor/rest/rjm/all aufrufen und die ObjectNames der MBeans begutachten.
Vielleicht noch ein paar Worte zu den ObjectNames. Diese identifizieren ein MBean eindeutig und hat folgendes Format:
Domain-name:key1=value1[,key2=value2,…keyX=valueX]
Weitere Details unter ObjectName.

Um z.B. die Attribute für ein bestimmten MBean anzuzeigen, kann man folgende Methode anbieten:

Teste man dies z.B. mit http://localhost:8080/JmxMonitor/rest/rjm/mb/com.sun.appserv:type=Loader,path=/,host=server erhält man die Attribute.

Hier sei angemerkt, dass der PathParam mit einem Regex angegeben wird, da der ObjectName das ungültige Zeichen / beinhalten kann. Falls man kein Regex verwenden möchte, kann ein @QueryParam verwendet werden.

Wie man sehen kann, kann man recht fix eine rudimentäre Implementierung eines JMX Monitor mit REST realisieren.
Das ganze ist natürlich ausbaubar: bessere Suche (Domain, Query), andere Ausgabeformate, setzen von Werten etc.

Nächster Teil folgt.

Links:
Adam Bien: http://adam-bien.com/roller/abien/
JSR 311: JAX-RS: The JavaTM API for RESTful Web Services: http://jcp.org/en/jsr/summary?id=311
JSR 339: JAX-RS 2.0: The Java API for RESTful Web Services: http://jcp.org/en/jsr/summary?id=339
Glassfish: http://glassfish.java.net/

Share it!
  •  
  •  
  •  
  •  
  •  
  •  
No comments yet

Leave a Reply

Note: You can use basic XHTML in your comments. Your email address will never be published.

Subscribe to this comment feed via RSS