Surveillance d’application avec JConsole, VisualVM et AppDynamics Lite

Que ce passe t-il lorsque la mission critique de l’application Java ralentit où continu de s’écraser en production?  Une large majorité des Opérations d’Intelligence Technologique aujourd’hui enterrent leurs réseaux dans les fichiers journaux. Pourquoi?  Car c’est ce qu’ils font depuis qu’IBM a inventé l’ordinateur central. Plonger dans les mauvaises herbes et s’y sentir bien, chacun se sent productif dans les entrées de connexion, en espérant que l’on ne finira pas expliquer l’inexplicable. Les opérations d’intelligence technologique peuvent également regarder les paramètres système et réseau qui lui dira comment une ressource serveur et une bande passante réseau sera consommée. De plus regardez de nombreuses mesures s’avèrent bien mais ce qui se trouve à l’origine de ces mesures de serveur et réseau est à changer en premier lieu? Réponse: l’application.

Les opérations IT surveille l’infrastructure que les applications exécutent mais il manque la visibilité suivant comment les applications en réalité travaillent et utilise l’infrastructure. Pour disposer de cette visibilité, les opérations doivent surveiller l’application d’exécution. Un moyen rapide pour débuter est d’utiliser les outils gratuits qui sont livrées dans l’application d’exécution. Dans le cas des applications Java, à la fois  JConsole et VisualVM envoi la norme SDK et ont approuvé des choix populaires pour surveiller les applications Java. Lorsque nous construisions AppDynamics Lite nous sentions qu’il y avait un vide suivant la gratuité des solutions de gestion d’application pour les opérations IT, le marché dispose de nombreux outils destinés aux développeurs mais nombreux sont ceux qui était lourd et intrusif pour les opérations IT afin de les utiliser en production. Si nous jetons un regard, comment comparer JConsole, VisualVM et AppDynamics Lite, nous verrons à quel point les solutions de gestion d’application gratuites peuvent être différentes.

Surveillance avec JConsole:

JConsole fournit une surveillance en bas de l’exécution JVM tout du long avec des ressources clés telle que l’ordinateur central, mémoire et filetage.  Il se compose de plusieurs onglets qui résument la santé de la mémoire JVM, filetage, niveau, machine virtuelle et MBeans qui sont exposés via la norme console JMX. JConsole peut de manière dynamique rejoindre tout JVM et collectera les données aussi longtemps que l’outil est ouvert et connecté à JVM. Il est assez bon pour examiner la mécanique d’un JVM à un niveau élevé ainsi vous pouvez identifier les problèmes tels que les fuites de mémoire potentielle, concurrence de filetage élevé et impasse. La visionneuse MBean permet également à l’utilisateur de reporter des centaines de mesures KPI en temps réel afin de vérifier quelles ressources JVM ont été épuisées par l’application. Malheureusement les recommandations d’Oracle que JConsole peut uniquement être déployé  dans développement et les environnements tests en raison de la surcharge qui peut être introduite sur l’application. L’interface utilisateur à la fois simple et facile pour naviguer mais manque de contexte d’application dans le respect des demandes utilisateurs et transactions qui s’exécutent dans JVM. Par exemple, si un utilisateur se plaint que la transaction de paiement est lente, l’utilisateur JConsole ne dispose d’aucun accès pour corrélation où dépannage de cette activité.

Voici quelques captures d’écrans de JConsole en action:

Surveiller l’utilisation de ressources JVM

Tendance utilisation mémoire usage au fil du temps:

Concurrence surveillance filetage

Surveiller MBeans en temps-réel

Surveillance avec VisualVM:

VisualVM est également gratuit et expédié avec Java SDK. C’est un peu comme JConsole mais dispose d’une meilleure présentation et de plus de fonctionnalités de surveillance avancées. VisualVM prend le contrôle de l’application à un niveau plus accru que JConsole en permettant à l’utilisateur d’analyser le processus d’exécution aussi bien que la capacité à profiler l’ordinateur central et l’utilisation de la mémoire des demandes JVM, à la fois celles qui sont déclenchées manuellement par l’utilisateur. VisualVM dispose d’un bel onglet montrant la zone mémoire utilisée ainsi que l’activité de collecte des corbeilles pour repérer les tendances anormales. Pour un facilité d’utilisation c’est l’idéal pour un développeur bien que je ne sois pas sûr qu’il soit approprié pour les opérations IT compte tenu des fonctionnalités de profilage et de données sont relativement faibles, verbeuses et fournit de mini contexte de demandes d’application où transactions utilisateur. Les utilisateurs ayant une connaissance accrue de l’application pourrait probablement reconstituer les composants Java liés aux demandes des utilisateurs autrement les transactions ne sont pas automatiquement évidentes pour les utilisateurs. Tel au delà JConsole peut s’avérer être un problème en production lorsque les fonctionnalités tel l’unité centrale et le profileur de mémoire sont déclenchés par l’utilisateur. C’est toutefois un excellent outil pour des cas de développement et de tests à utiliser car cela ne coûte rien.

Voici quelques captures d’écrans de VisualVM en action:

Surveiller l’utilisation de ressource JVM

Déclencher l’unité centrale et profil mémoire

Vue de la mémoire utilisée et collecte des corbeilles

Surveillance avec AppDynamics Lite:

AppDynamics Lite est un autre outil gratuit qui utilise une approche légèrement différente de la surveillance d’application. Il débute à un niveau plus élevé et visualise les JVM surveillés, et avec ses interactions au sein de l’infrastructure. Les utilisateurs peuvent voir les meilleurs transactions commerciales qui sont transmisses  par JVM, créant un niveau d’abstraction à partir des analyses des premiers filetages et mesures JVM. C’est une approche de surveillance de haut en bas contrairement à une surveillance de bas en haut qui signifie que les opérations IT et les développeurs voit l’impact réel sur l’entreprise avant qu’ils explorent et analysent les données. Suivant une transaction commerciale lente l’utilisateur peut naviguer dans l’exécution du code réel afin d’identifier le niveau exact, méthode et interface qui était responsable de ce goulot d’étranglement. Ainsi au lieu d’analyser l’historique des mesures à partir de différentes perspectives l’utilisateur peut la résoudre en utilisant une transaction commerciale comme un point d’ancrage jusqu’à la racine du mal. Lite également dispose du temps réel des tendances MBean  et aussi livré avec des capacités d’alertes ainsi les utilisateurs peuvent être proactif pour surveiller l’application de performance. La meilleure partie d’AppDynamics Lite est qu’il peut s’exécuter en production 24 heures sur 24 et 7 jours sur 7 dès lors les opérations IT n’ont pas à se soucier des frais généraux et des problèmes qui peuvent être résolus rapidement.

Voici quelques captures d’écran d’AppDynamics Lite en action:

Flux de surveillance d’application et santé transactionnelles commerciales

Volume de transactions commerciales, débit, erreurs et santé SLA

Approfondir n’importe laquelle des transactions commerciales pour voir sa pile d’exécution du code en temps opportun

Surveiller les mesures MBean & JMX  en temps réel

Configurer les alertes en gestion proactive de la performance d’application

Voici un rapide résumé, comment comparer JConsole, VisualVM et AppDynamics Lite:

Conclusion: 

JConsole, VisualVM et AppDynamics Lite sont juste quelques exemples de solutions de surveillance d’application de performance gratuite  sur le marché. Elles disposent de fonctionnalités communes mais diffèrent suivant ce qu’elles surveillent, collectent et comment elles présentent les données. La valeur de ces outils par conséquent varie en fonction de l’utilisateur, cas d’utilisation et d’environnement  qui sont destiné à. Les développeurs généralement souhaite une vision de bas en haut avec de nombreuses données à analyser tandis que les opérations IT souhaite une approche de haut en bas d’avantage structurée  afin qu’ils puissent résoudre les problèmes et maintenir le contexte sans avoir à se perdre dans les mauvaises herbes. Au delà vous pouvez également l’utiliser en variant l’ensemble des outils ainsi se rappeler de faire attention lorsque vous surveillez votre application en production.

Si vous cherchez une manière peu chère et rapide pour commencer la surveillance d’application alors vous pouvez vérifier ses trois solutions. Elles sont entièrement gratuites, facile à installer et vous donneront la visibilité si vous avez besoin de résoudre vos problèmes d’application. AppDynamics dispose également d’un Edition Pro pour les organisations qui exigent une visibilité accrue dans leurs missions critiques d’application, cela est encore gratuit pour l’essayer pendant 30 jours (afin de savoir comment il devrait être). Nous croyons vraiment qu’il faut l’essayer avant de l’acheter, nous croyons également que certaines organisations ne doivent pas disposer immédiatement d’un budget pour la surveillance d’application c’est pourquoi nous avons crée AppDynamics Lite!

Gestion d’application.

Cet article est la traduction du texte original en anglais. Ci-joint le texte original: http://www.appdynamics.com/blog/java/application-monitoring-with-jconsole-visualvm-and-appdynamics-lite/#sthash.V3371sOE.dpuf