{"id":616,"date":"2010-03-01T22:27:46","date_gmt":"2010-03-01T22:27:46","guid":{"rendered":"http:\/\/blog.milamberspace.net\/?p=616"},"modified":"2010-03-01T22:27:46","modified_gmt":"2010-03-01T22:27:46","slug":"tomcat-ou-jboss-enregistrer-le-temps-de-traitement-des-requetes-http","status":"publish","type":"post","link":"https:\/\/blog.milamberspace.net\/index.php\/2010\/03\/01\/tomcat-ou-jboss-enregistrer-le-temps-de-traitement-des-requetes-http-616.html","title":{"rendered":"Tomcat ou Jboss, enregistrer le temps de traitement des requ\u00eates HTTP"},"content":{"rendered":"<p>Avec Tomcat ou Jboss, il est possible d&rsquo;enregistrer le temps de traitement d&rsquo;une requ\u00eate HTTP. Il y a en effet une valve AccessLogValve <em>(d\u00e9sactiv\u00e9e par d\u00e9faut)<\/em> qui trace les acc\u00e8s (requ\u00eates) HTTP qui sont effectu\u00e9s sur le serveur. Avec une petite modification du format du log, on peut ajouter l&rsquo;enregistrement du temps de traitement cot\u00e9 Tomcat ou Jboss de la requ\u00eate.<\/p>\n<p>Ceci est particuli\u00e8rement utile pour d\u00e9corr\u00e9ler le temps de traitement par rapport au temps de r\u00e9ponse enregistr\u00e9 dans un outil de test de charge, comme JMeter.<\/p>\n<p>Voici comme faire dans Tomcat :<\/p>\n<p>Au niveau du fichier<em> Tomcat_Home\/conf\/server.xml<\/em>, on trouve la section suivante en commentaires :<\/p>\n<pre>&lt;!--\r\n&lt;Valve className=\"org.apache.catalina.valves.AccessLogValve\" directory=\"logs\"\r\nprefix=\"localhost_access_log.\" suffix=\".txt\" pattern=\"common\" resolveHosts=\"false\"\/&gt;\r\n---&gt;<\/pre>\n<p><!--more-->Il faut d&rsquo;abord la d\u00e9commenter, puis modifier l&rsquo;attribut <strong>pattern<\/strong> comme suit :<\/p>\n<pre>&lt;Valve className=\"org.apache.catalina.valves.AccessLogValve\" directory=\"logs\"\r\nprefix=\"localhost_access_log.\" suffix=\".txt\"\r\n<strong>pattern='%h %l %u %t \"%r\" %s %b %D'<\/strong>\r\npattern=\"common\" resolveHosts=\"false\"\/&gt;<\/pre>\n<p>Le %D correspondra au temps de traitement de la requ\u00eate en millisecondes.<\/p>\n<p>Pour Jboss qui, (je le rappelle) contient un serveur Tomcat (plus exactement un d\u00e9riv\u00e9 appel\u00e9 Jboss Web), c&rsquo;est la m\u00eame valve que l&rsquo;on retrouve.<\/p>\n<p>Cette fois-ci, il faut aller dans le dossier <em>Jboss_Home\/server\/&lt;default|nom instance&gt;\/deploy\/jboss-web.deploy\/server.xml<\/em>, puis proc\u00e9der au m\u00eame type de changement sur l&rsquo;attribut pattern :<\/p>\n<pre>&lt;!-- Access logger --&gt;\r\n&lt;Valve className=\"org.apache.catalina.valves.AccessLogValve\"\r\nprefix=\"localhost_access_log.\" suffix=\".log\"\r\npattern='%h %l %u %t \"%r\" %s %b %D'\r\ndirectory=\"${jboss.server.log.dir}\" resolveHosts=\"false\" \/&gt;<\/pre>\n<p>Bien entendu, dans les deux cas, il faut red\u00e9marrer le serveur pour la prise en compte.<\/p>\n<p>Ensuite dans le fichier localhost_access_log.&lt;date&gt;.log, on aura des lignes de ce type :<\/p>\n<pre>123.45.67.89 - - [01\/Mar\/2010:00:05:39 +0000] \"POST \/App1\/Modification.action HTTP\/1.1\" 200 24039 458<\/pre>\n<p><em>o\u00f9<\/em> le 458 \u00e0 la fin correspond au temps de traitement exprim\u00e9 en millisecondes.<\/p>\n<p>On notera qu&rsquo;il est possible de changer <em>(ou d&rsquo;ajouter)<\/em> le %D en %T pour avoir le temps de traitement en secondes plut\u00f4t que millisecondes.<\/p>\n<p>Plus d&rsquo;infos sur la valve et les formats possibles <a href=\"http:\/\/tomcat.apache.org\/tomcat-6.0-doc\/config\/valve.html\">ici<\/a>.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>PS.<\/em><\/span> Bien entendu, Apache ou IBM HTTP Server propose la m\u00eame fonctionnalit\u00e9. Il peut m\u00eame \u00eatre tr\u00e8s int\u00e9ressant de l&rsquo;activer \u00e0 son niveau dans le cas d&rsquo;une architecture de type Apache+mod_jk+Tomcat.<\/p>\n<p>.\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Avec Tomcat ou Jboss, il est possible d&rsquo;enregistrer le temps de traitement d&rsquo;une requ\u00eate HTTP. Il y a en effet une valve AccessLogValve (d\u00e9sactiv\u00e9e par d\u00e9faut) qui trace les acc\u00e8s (requ\u00eates) HTTP qui sont effectu\u00e9s sur le serveur. Avec une petite modification du format du log, on peut ajouter l&rsquo;enregistrement du temps de traitement cot\u00e9 &hellip; <a href=\"https:\/\/blog.milamberspace.net\/index.php\/2010\/03\/01\/tomcat-ou-jboss-enregistrer-le-temps-de-traitement-des-requetes-http-616.html\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Tomcat ou Jboss, enregistrer le temps de traitement des requ\u00eates HTTP<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32,210,56],"tags":[360,332,211,338],"class_list":["post-616","post","type-post","status-publish","format-standard","hentry","category-apache","category-jboss","category-tomcat","tag-jboss","tag-performance","tag-temps-de-traitement","tag-tomcat"],"_links":{"self":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/616","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/comments?post=616"}],"version-history":[{"count":4,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/616\/revisions"}],"predecessor-version":[{"id":620,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/616\/revisions\/620"}],"wp:attachment":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/media?parent=616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/categories?post=616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/tags?post=616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}