InfraRED est très utile pour le diagnostic de problèmes de performances et permet, par exemple, de répondre aux questions suivantes :
- Combien de temps prend une transaction Web particulière?
- Combien de temps un utilisateur attend avant le chargement d'une page particulière?
- Quelle es la décomposition des temps consommées par chaque composants (http, struts, JDBC, …)?
Il collecte les mesures de temps de réponses sur divers aspects d'une application et les rend disponible pour l'analyse ou à des fin d'alerte ou pour assister dans la phase de recherche de causes pour des problèmes de lenteurs.
InfraRED exploite les mécanises de l'AOP (Aspect Oriented Programming) pour instrumentaliser le code source en ajoutant les instructions de mesure des temps de réponse (AspectJ & Aspectwerkz) au byteCode des applications, déjà déployées dans le serveur d'application J2EE.
Pourquoi utiliser Infrared ?
Les principaux avantages de Infrared sont :
- Il est capable de collecter des statistiques sur les différents aspects de
performance d'une application J2EE et de les rendre disponible pour une analyse de bout en bout- HTTP
- JDBC
- WEB
- SQL
- Hibernate
- HTTP
- Il est non intrusif, adaptée aux environnements de pré-production, aucun changement dans le code source de l'application n'est nécessaire.
- Le niveau de statistiques est configurable
- Il est adapté au suivi de la couche d'accès aux données
- Une console web et la capacité d'export vers Excel
- Il offre la capacité de présenter les séquences d'appel entre les méthodes
- Il est open source
Exemple d'utilisation de InfraRED
Une fois installé, InfraRED instrumente le bytecode des applications et ajoute des instructions pour le suivie et la calcul des temps de réponses. Il est capable de différencier les types d'appel selon les couches (web, java, JDBC ..) :
Il est capable de présenter les temps de réponses pour les classes de Struts (1.2.x)
Il est capable de présenter les temps de réponses pour les appels de JSP
L'inspection des requêtes SQL exécutés par l'application étudiée, reste la fonctionnalité la plus intéressantes de Infrared.
En effet, il permet de mesurer les requêtes SQL les plus coûteuses en termes de nombre d'exécution et de temps moyen d'exécution (nombre paramétrable)
Compromis information Vs impact sur les performances
Il est recommandé d'utiliser Infrared avec précautions.
En effet, observer un système ne peut se faire sans le perturber, l'utilisation d'Infrared va impacter les performances de l'application (impact estimé à moins de 5%). Cet impact est essentiellement lié à l'empreinte sur la mémoire de statistiques collectées en temps réel et à l'insertion périodique dans la base de données de ces informations.
mais le principal souci reste que le projet est en arrêt depuis 2006
à suivre ...
Installation simple à mettre en œuvre en 4 étapes
Après avoir Téléchargé Infrared à partir de l'adresse : http://infrared.sourceforge.net/versions/latest/
- Ajouter dans un variable d'environnement INFRARED_HOME
- Ajouter dans le variable d'environnement JAVA_OPTS: -javaagent:%INFRARED_HOME%\aspectjweaver-1.5.0.jar
- Copier le jar $INFRARED_HOME$\infrared-aspectsystem-all-2.4.1.BETA.jar dans TOMCAT_HOME\lib
- Copier le jar $INFRARED_HOME$\infrared-agent-all-servlet-2.4.1.BETA.jar dans TOMCAT_HOME\lib
- Copier le fichier INFRARED_HOME\props\infrared-agent.properties dans le WEB-INF/classes de l'application à monitorer.
C) Ajouter InfraRED application startup listener :
- Pour les WAR web application, ajouter le code suivant dans fichier WEB-INF/web.xml
Filter : net.sf.infrared.aspects.servlet.InfraREDServletFilter
Listener : net.sf.infrared.agent.setup.InfraREDServletContextListener
D) InfraRED web interface peut être trouvée dans INFRARED_HOME/infrared-web-all-2.4.1.BETA.war. Le WAR peut être installé sur n'importe quel conteneur Web J2EE.
0 commentaires :
Enregistrer un commentaire