27 votes

Que surveillez-vous avec JMX dans votre application Java de production?

Cette question ne concerne pas le fonctionnement de JMX ni ce que fait JMX. Cette question concerne les applications de JMX dans un environnement de serveur d'applications standard en production. Ce n'est pas non plus pour un serveur spécifique.

Que surveillez-vous avec JMX dans un environnement de production qui exécute une pile standard de services Java EE: accès à la base de données (JDBC et JPA), EJB de session, JMS, serveur Web, services Web, services compatibles AJAX?

25voto

Cyrille Le Clerc Points 46

À la JVM , j'surveiller la collecte des ordures durée par minute,

Au Conteneur de Servlet , j'ai suivi du nombre de demandes, le nombre de dérogations (4xx & 5xx codes) , somme de la durée de la demande par minute,

Au SAVON niveau, je surveille le nombre d'invocations, le nombre de dérogations & somme des invocations par opération et par minute,

Sur le Web MVC niveau, je surveille le nombre d'invocations, le nombre de dérogations & somme des invocations par action et par minute,

Pour les piscines (source de données,le pool de thread / exécuteur testamentaire de service), je surveille l'actif comte,

Pour la JMS connexions, je surveille le nombre des envoyés et reçus messages par minute, et le nombre de récepteurs,

Pour EhCache, je surveille le nombre d'entrées dans le cache, le nombre de hit & miss par minute,

Lors de l' application d'entreprise , j'ai développé un @Profilé d'annotation de suivre le nombre d'appels, nombre d'exceptions et de la durée totale par minute.

Si vous êtes intéressés par ce genre de mesures, nous avons développé de nombreux JMX extras (dbcp, util.simultanées, jms, @profilé d'annotation) et emballé tout cela avec le Printemps, l'espace de noms XML en fonction de la configuration, Hyperic HQ plugins, le suivi des pages jsp, etc

Les détails sont ici : http://code.google.com/p/xebia-france/wiki/XebiaManagementExtras .

Tout ce code est sous licence en vertu de la business friendly Open Source Apache Software License 2, déployé sur Maven Central Référentiel, téléchargeable dans un bocal et disponible sur Google Code serveur Subversion pour être intégré à la façon dont vous le souhaitez.

Espérons que cela aide,

Cyrille (Xebia)

8voto

Rob Smith Points 166

J'ai utilisé JMX pour exposer un MBean qui permettra l'ajustement dynamique des niveaux de Log4J Logger. Cela s'est avéré très utile pour une application en cluster où nous ne voulions pas avoir à modifier le fichier de configuration log4j sur tous les nœuds pour changer le niveau de journalisation pour un enregistreur spécifié.

5voto

Brian Agnew Points 143181

Ma plus grande exigence commune est suivi nombre de threads et de la mémoire. Mon travail le plus récent, très impliquée-thread serveurs d'envoi des grilles, et il est important de surveiller l'utilisation du thread (une mesure de combien de répartition le serveur a été entreprise). La mémoire est étroitement liée à l'utilisation du thread (en partie parce que les objets associés à chaque thread, en partie à cause de l'implicite allocation de pile par thread).

Nous JMX permis à notre charge de travail de la file d'attente de données ainsi. Le ci-dessus surveiller les symptômes ou les effets de la mise en attente des éléments de travail, mais en fin de compte, nous voulions un contrôle sur les files d'attente de travail. C'est très intéressant d'exposer les principales composantes via JMX pour obtenir une perspective plus claire sur ce qu'il se passe.

1voto

Gaël Marziou Points 914

Dans un projet précédent, nous avons surveillé le nombre de threads et la mémoire, le nombre de sessions HTTP et la taille des caches de requête. L'autre intérêt de JMX avec caches est que vous pouvez forcer un vidage.

1voto

Javamann Points 1937

Un petit OT, mais vous pouvez utiliser JMX pour un peu plus. Actuellement, j'utilise JMX pour les composants de déploiement / correctif à chaud. Ajoutez dynamiquement des fonctionnalités aux composants existants (filtre, etc.). JMX est bon pour la communication entre les composants sur la même JVM. Chaque composant que je crée est instrumenté pour utiliser JMX.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X