Liberty : Journalisation d'événements
Dans le cadre des fonctions de surveillance et de diagnostic, WebSphere Application Server Liberty génère des événements au niveau des différents composants de Java Platform, Enterprise Edition pour conserver un suivi des demandes. La fonction eventLogging-1.0 consigne de tels événements lorsque les demandes sont en cours d'exécution. Grâce à cette fonction, l'utilisateur peut suivre les demandes en cours d'exécution dans WebSphere Application Server Liberty. Chaque demande est associée à un corrélateur unique, a appelé l'ID demande ainsi que les informations de contexte qui aident l'utilisateur à comprendre les données spécifiques à la demande.
La fonction de consignation d'événements est contrôlée via la configuration de serveur. Elle est configurée dans le fichier server.xml.
[12/15/14 18:24:29:528 IST] 0000002e EventLogging I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | TradeScenarioServlet
[12/15/14 18:24:29:531 IST] 0000002e EventLogging I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | TradeAppServlet
[12/15/14 18:24:29:532 IST] 0000002e EventLogging I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | /quote.jsp
[12/15/14 18:24:29:533 IST] 0000002e EventLogging I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | /displayQuote.jsp
[12/15/14 18:24:29:534 IST] 0000002e EventLogging I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.datasource.psExecuteQuery # contextInfo=jdbc/TradeDataSource | select * from quoteejb q where q.symbol=?
[12/15/14 18:24:29:547 IST] 0000002e EventLogging I END requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.datasource.psExecuteQuery # contextInfo=jdbc/TradeDataSource | select * from quoteejb q where q.symbol=? # duration=12.537ms
[12/15/14 18:24:29:556 IST] 0000002e EventLogging I END requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | /displayQuote.jsp # duration=22.171ms
[12/15/14 18:24:29:671 IST] 0000002e EventLogging I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | /displayQuote.jsp
[12/15/14 18:24:29:672 IST] 0000002e EventLogging I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.datasource.psExecuteQuery # contextInfo=jdbc/TradeDataSource | select * from quoteejb q where q.symbol=?
[12/15/14 18:24:29:677 IST] 0000002e EventLogging I END requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.datasource.psExecuteQuery # contextInfo=jdbc/TradeDataSource | select * from quoteejb q where q.symbol=? # duration=4.968ms
[12/15/14 18:24:29:684 IST] 0000002e EventLogging I END requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | /displayQuote.jsp # duration=12.569ms
[12/15/14 18:24:29:685 IST] 0000002e EventLogging I END requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | /quote.jsp # duration=152.752ms
[12/15/14 18:24:29:686 IST] 0000002e EventLogging I END requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | TradeAppServlet # duration=154.616ms
[12/15/14 18:24:29:687 IST] 0000002e EventLogging I END requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | TradeScenarioServlet # duration=158.283ms
La demande commence à l'événement BEGIN websphere.servlet.service "contextInfo=TradeWeb | TradeScenarioServlet" (voir la première ligne dans l'exemple de code) et se termine à END websphere.servlet.service "contextInfo=TradeWeb | TradeScenarioServlet" (voir la dernière ligne dans l'exemple de code). Le temps total de cette demande s'affiche également à la fin (158.283 ms dans l'exemple de code).
Vous pouvez voir les demandes enfant en recherchant BEGIN et END dans la demande principale. Vous pouvez également rechercher le temps pris par chaque demande enfant.
Pour de meilleures performances, vous pouvez utiliser la consignation binaire lorsque de la consignation des événements est activée. Les attributs eventType, contextInfo et requestID des entrées de journal d'événements sont stockés en tant qu'extension d'enregistrement de journal. Vous pouvez utiliser ces extensions d'enregistrement de journal pour filtrer les journaux avec la commande binaryLog.
Analyse syntaxique des entrées de journal d'événements dans le fichier messages.log
Les journaux des événements capturent les informations relatives aux événements au format suivant :[Log mode] [Request Identifier] # [Event Type] # [Context Information] # [Duration] (optional)
où- Log mode
indique si le journal a été enregistré au moment de l'entrée ou de la
sortie de l'événement. BEGIN correspond à l'entrée
de l'événement et END correspond à la sortie de
l'événement.
- Request identifier est une chaîne unique qui est affectée à
chaque demande. Elle peut être utilisée pour filtrer les événements
qui appartiennent à une demande particulière. Exemple :
requestId=AAY6TalVDTO_AAAAAAAAAAK
- Event type fournit des informations sur la source d'événement et
peut être l'un des types d'événement pris en charge dans le table
ci-après. Le type d'événement peut être utilisé pour filtrer les
événements d'un type spécifique. Exemple : eventType=websphere.servlet.service
- Context information de l'événement fournit des
détails relatifs au type d'événement. Ces informations varient en
fonction du type d'événement. Les informations contextuelles peuvent
comporter plusieurs sections et elles sont séparées par
|(espace|espace). Des exemples d'informations contextuelles
pour différents types d'événement sont fournies dans le tableau
ci-après.
- Duration indique la durée de l'événement. Cette durée n'apparaît
que dans les entrées de sortie de l'événement. Exemple :
duration=158.283ms
[12/15/14 18:24:29:687 IST] 0000002e EventLogging I END requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | TradeScenarioServlet # duration=158.283ms
Le tableau ci-après répertorie les types d'événement qui sont pris en
charge par la consignation d'événements :Composant | Types d'événements | Informations contextuelles | Exemple |
---|---|---|---|
Servlet |
websphere.servlet.destroy |
[Application Name] | [Servlet Name] | [Path Information] | [Query String] |
contextInfo=TradeWeb | /displayQuote.jsp |
Session |
websphere.session.dbSessionDestroyedByTimeout, websphere.session.getAttribute |
[Session Id] [Session Id] | [Session Attribute Name] |
contextInfo=EuitabHZUOD7J2u01HDdAG0 contextInfo=EuitabHZUOD7J2u01HDdAG0 | userID |
JDBC |
websphere.datasource.execute |
[Jndi Name Of Data Source] | [SQL Query] |
contextInfo=jdbc/TradeDataSource | select * from quoteejb q where q.symbol=? |