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 de différents composants de Java Platform, Enterprise Edition pour 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.

Voici un exemple de journal illustrant les journaux des événements de bout en bout pour l'ID de demande AAY6TalVDTO_AAAAAAAAAAK et le contexte TradeWeb :
[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)

- 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

A l'exception du mode de consignation, qui est séparé par un espace, tous les autres attributs de journal sont séparés par #(espace#espace). Par exemple,
[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 :

Tableau 1. Types d'événement pris en charge et informations contextuelles correspondantes
Composant Types d'événements Informations contextuelles Exemple

Servlet

websphere.servlet.destroy
websphere.servlet.service

[Application Name] | [Servlet Name] | [Path Information] | [Query String]

contextInfo=TradeWeb | /displayQuote.jsp

Session

websphere.session.dbSessionDestroyedByTimeout,
websphere.session.dbSessionDestroyed
websphere.session.sessionAccessed
websphere.session.sessionCreated
websphere.session.sessionDestroyedByTimeout
websphere.session.sessionDestroyed
websphere.session.sessionLiveCountDec
websphere.session.sessionLiveCountInc
websphere.session.sessionReleased

websphere.session.getAttribute
websphere.session.setAttribute

[Session Id]







[Session Id] | [Session Attribute Name]

contextInfo=EuitabHZUOD7J2u01HDdAG0







contextInfo=EuitabHZUOD7J2u01HDdAG0 | userID

JDBC

websphere.datasource.execute
websphere.datasource.executeQuery
websphere.datasource.executeUpdate
websphere.datasource.psExecute
websphere.datasource.psExecuteQuery
websphere.datasource.psExecuteUpdate
websphere.datasource.rsCancelRowUpdates
websphere.datasource.rsDeleteRow
websphere.datasource.rsInsertRow
websphere.datasource.rsUpdateRow

[Jndi Name Of Data Source] | [SQL Query]

contextInfo=jdbc/TradeDataSource | select * from quoteejb q where q.symbol=?


Icône indiquant le type de rubrique Rubrique de référence

Nom du fichier : rwlp_eventlogging.html