dimanche 5 juillet 2009

Monitoring web : LambdaProbe un super outil de monitoring de Tomcat : en open source et exploite JMX

Vous réalisez une application web sous Tomcat, utilisant ou non Spring, intégrant ou non JBPM ou d’autres moteurs de workflow, vous avez besoin d’un monitoring système ?

La solution : Lambda Probe

clip_image001

Lambda Probe est une application Web autonome, s’installe sur le serveur de production.

Lambda Probe permet de visualiser les différents paramètres de toutes les applications web installées dans Apache Tomcat.

Lambda Probe est est conçu spécialement et exclusivement pour fonctionner avec Tomcat.

clip_image003

page d’accueil de Probe

Le monitoring se fait en temps réel. Il offre la possibilité de consulter l'adresse IP de la session, la possibilité de consulter les servlets, les filtres, les Descripteurs cde ploiement.

Lambda Probe est en mesure d'accéder à toutes informations exposées par des agents JMX.

Si on click sur le lien de l’application « books » on accède à plusieurs paramètres de l’application tel que les sessions en cours, les pages JSP, les servlets, etc.

clip_image005

les sessions ouvertes sur l’application surveillé

Pour chaque session, nous avons accès aux objets qui se trouvent le dedans ainsi que d’autres informations tel que le type, la taille, la valeur de chaque objet.

clip_image007

Cette fonctionnalité permet de Controller le contenu de la session (elle met en exergue les objets non Serializable)clip_image009

Utilisation de la mémoire par le serveur Tomcat

clip_image011

Attention n’a pas bougé depuis 28 Nov 2006

licence GPL

mais ceci est un autre sujet


-----------------

Sujets sur l’étude de performance :

  1. Est-ce que vous voulez connaitre ce que fait votre application coté base de données : employer un espion (open source)
  2. Performance Engineering Process & Solutions (PEP&S) : Partie 2
  3. La nouvelle version 3.0 de SOAPUI améliore le test des services REST
  4. Performance Engineering Process & Solutions : PEP&S
  5. Améliorer la performance de vos travaux de fin de journée par “JDBC Batch” et Spring
  6. Application web : la différence entre Mesure de performance, montée en charge et vitesse d’exécution
  7. Are the data from the GoogleApp Engine Dashbord valid?
  8. Quel crédit donner aux résultats affichés par le DashBoard de GoogleApp Engine (GAE) ?
  9. InfraRED : un outil de suivi des temps de réponse d’application J2EE, de monitoring et diagnostique de problèmes de performance.

vendredi 3 juillet 2009

Est-il nécessaire de planifier pour un site collaboratif SharePoint comme un projet classique?

SharePoint 2007 (MOSS) semble simple et facile dès la première présentation.

Cela vous paraitra évident si la première impression est donnée par un spécialiste chevronnée.

(bien sûre, il n’est pas possible d’avoir une seconde chance pour faire une bonne première impression)

En quelques secondes, votre site est là et fonctionnel avec la recherche full texte ... en relation directe avec votre LDAP (Active Direcory) et vos droits.

avec des Workflow par défaut, certes simple, mais avec des circuits de validation et de durée de vie de documents,

Mais...

Ne jamais oublier que la mise en place d’un Portail collaboratif n’est pas une affaire d’outillage !

Certes un bon outil facilite la mise en ouvre!

Mais, la mise en place d’un Portail collaboratif est un projet, reste un projet complexe et figure même parmi les plus difficiles,

Car sa réussite c’est la fédération de toutes les ressources de l’entreprise.

Satisfaire 1500 utilisateurs, n’est pas une histoire simple !

Donc

Faire attention aux points suivants

  • - Manque de planification : allez-y on y va par prototypage successif et on livre …
  • - Tomber dans le « ShowRoomisme » des possibilités de SPS et oublier de développer une vraie solution : SPS offre beaucoup de possibilités, est ce qu’on a besoin de toutes les utiliser ?
  • - Manque de vision métier de la solution : pour quel but ? et quelle valeur métier ?, quel retour sur investissement : spécifier des objectifs mesurables

Par exemple :

  1. Augmenter la vitesse pour trouver une information (gagner 10 minutes par jours)
  2. Il est important d’impliquer les utilisateurs : de façon organisée, méthodique et convergente
  3. Utiliser un Site SharePoint pour le change management
  • Créer un Change Request site : un site pour le change request
  • Change control Borard

Utiliser un wiki SharePoint pour le manuel utilisateur et le eLearning

La technologie ne rapporte pas de bénéfices indépendamment de son usage dans un contexte de business : c’est cet usage qui permet un ROI

Mais ceci est un autre sujet



jeudi 2 juillet 2009

Recherche sur le web des termes technologique : la Tunisie et le Maroc en bonne position

En observant les résultants de Google Insgihts for Search pour le mot richfaces ; http://www.google.com/insights/search

clip_image001

On remarque que la Tunisie est en avant sur le terme

(richFaces ou le terme JBPM, …)

clip_image002

Regional interest for richfaces (JSF framework de JBOSS – Redhat)


Region City

Nombre

1.

Tunisia

100

2.

India

61

3.

Brazil

52

4.

Hong Kong

45

5.

Colombia

37

6.

Austria

36

7.

Czech Republic

31

8.

Switzerland

30

9.

Russian Federation

28

10.

Morocco

28

Quelle explication ?

En Tunisie l’informatique (TIC et compagnie …) est à construire et se construit en ce moment.

On part sur de nouveau projets où il n’y a pas le poids de l’existant et de l’historique Java d’où le besoin de se documenter.

En Tunisie les 60000 étudiants en Informatique (pour une population de 10M) et un goût prononcé pour l'open source : seul pays possédant un secrétariat d'état à l'open source.

Mais aussi, les jeunes, cherchent par eux même par manque de ressources confirmés et de cochaing : le middle management technique est en faible quantité et le recours à la formation et aux coaching n’est pas une tradition dans les grands comptes et les SSII

Mais ceci est un autre sujet

mercredi 1 juillet 2009

Monitoring : StackProbe : Un Profiler Java efficace, permet de comprendre ce qui se passe dans la JVM et exploite JMX

StackProbe est un outil pour la surveillance des applications Java: Il vous aide à trouver des fuites de mémoire et d'optimiser la vitesse.

Nécessite d’un profiler

Savoir ce qui se passe dans une application Java EE n’est pas chose facile, surtout lorsqu’on qu’on en dispose des documents d’architecture ni de la description de la structure des codes sources.

Mais, dans la majorité des situations, qu’on dispose du code source ou non, on a besoin d’inspecter ce qui ce passe réellement dans la JVM, qu’est ce qui se passe dans la JVM.

Un Profiler JVM est une solution de surveillance des applications Java qui vous permet de détecter, d'isoler et de diagnostiquer (d’une façon pro active) les problèmes de performance.

clip_image001

VisualVM, intègre à Java 6 de Sun, permet de savoir quelques informations.

NetBeans offre un profiler de qualité, et Eclipse n’arrive pas à simplifier l’installation de son TPTP.

Les outils commerciaux CA Wily Introscope ou ceux de HP Mercury sont légende dans la profession,

L’outil JProfiler est extrêmement populaire, mais nécessite d’être installé.

Mais, cette fois je présente un autre produit plus simple, sans installation : stackProbe

installer stackProbe

stackProbe est capable de profiler toute application java tournant sous le JDK 6.x de SUN.

Il suffit de le télécharger stackprobe.jar (120 kB !! ) et de lancer dans une JVM

java -jar stackprobe.jar

bien sûre après avoir obtenu une licence (StackProbe est un profiler commercial, il est gratuit pour les projets open source)

Il est possible de l’utiliser avec le service JNLP, ce qui permet d’utiliser toujours la dernière version stable disponible.

Le profiler : StackProbe

Il s’agit d’une inspection minutieuse de l’intérieur de la JVM.

clip_image002

clip_image004

Exemple : présentation des activités de Thread

clip_image005

Utiliser des filtres de type:

Présentation des activités des méthodes : on est capable de choisir le package pour isoler

  • Thread-[0-9]+ pour "Thread-1", "Thread-2", ….
  • com\.oxia\..* n’importe quelle méthode du package "com.oxia".

clip_image006

Présentation des résultats en suivant le chemin d’appelle des méthodes

clip_image007

Méthode : StackProbe utilise la méthode de sampling

StackProbe utilise la méthode de sampling, alors que la majorité des autres profiler utilisent l’instrumentation de bytecode.

Comment ça fonctionne :

StackProbe demande périodiquement à la JVM la liste des StackTraces pour tous les threads. Ces listes sont appelées échantillons. Plus l’application passe de temps dans une méthode, plus elle sera présente dans l’échantillonnage.

Le principal avantage de cette technique est que, même si elle présente une perturbation, cette surcharge est réparti également entre toutes les méthodes de l'application observée, il n'ya donc pas de risque d'introduction de faux goulets d'étranglement.

Le Profiler offre un panneau de paramétrages qui vous permet de régler le profilage à vos besoins.

clip_image008

L’avantage de StackProbe, c‘est qu’il n’a pas besoin d’être installé et il est capable d’inspecter la JVM sans instrumenter le code de l’application.

StackProbe ne fait pas la Détection et résolution de problèmes

Ce profiling, doit être intégré dès les premières phases d’un projet, ce qui permet d’anticiper les problèmes

Ce type outil doit être mis à la disposition de tous les développeurs et de l’équipe système, il pemrt d’offrir les données pour

Détection des fuites mémoire

La fuite mémoire apparait lorsqu'un objet n'est plus utilisé mais reste actif et ne peut être nettoyé par le GC.

Rechercher & donner des solutions pour les goulots d'étranglement de performances

Détecter et identifier quelle portion de code génère des problèmes de performances n'est pas une tâche simple et rapide.

Détecter & résoudre des « Deadlock »

Le < deadlock > est une condition ou des threads sont bloquées en attente d'entrer dans un bloc de synchronisation ou lorsque deux ou plusieurs threads s'exécutent simultanément et attendent les mêmes ressources.

Détecter la mauvaise utilisation de la mémoire

Détecter les objets qui utilisent d'une façon anormale plus de mémoire que nécessaire, sans qu'il y ait de fuite mémoire. Cette situation entraine une consommation excessive de la mémoire et engendre des besoins importants de swap.

Malheureusement, ce travail de détective reste à votre charge.

La solution de Profiling idéale devrait apporter, automatiquement, des solutions aux problèmes de performances du code

Mais ceci est un autre sujet.

d’autres sujets :

autres sujets traités :

1. Est-ce que vous voulez connaitre ce que fait votre application coté base de données : employer un espion (open source)
2. Performance Engineering Process & Solutions (PEP&S) : Partie 2
3. La nouvelle version 3.0 de SOAPUI améliore le test des services REST
4. Performance Engineering Process & Solutions : PEP&S
5. Améliorer la performance de vos travaux de fin de journée par “JDBC Batch” et Spring
6. Application web : la différence entre Mesure de performance, montée en charge et vitesse d’exécution
7. Are the data from the GoogleApp Engine Dashbord valid?
8. Quel crédit donner aux résultats affichés par le DashBoard de GoogleApp Engine (GAE) ?
9. InfraRED : un outil de suivi des temps de réponse d’application J2EE, de monitoring et diagnostique de problèmes de performance.

Architecte SOA & Professionnel Open Source Headline Animator

 
Khaled BEN DRISS
Cloud Computing, SOA et Web 2.0 : Des sujets techniques sur SOA et l'Open Source : de Java & .Net, PHP5, Symfony, à SaaS / PaaS en passant par Azure, google appengine, le BPM, la Modélisation et d'autres sujets du coté du serveur et cloud computing.