Projet

Général

Profil

Development #1282

Ajouter le log de debug du temps de traitement des requêtes

Ajouté par Benjamin Dauvergne il y a environ 12 ans. Mis à jour il y a environ 12 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
28 février 2012
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Planning:

Description

On a généralement aucun info sur les temps de traitement des requête par w.c.s, ça pourrait nous éviter de reste trop dans le brouillard quand on constate des problèmes de gateway timeout ou autre.

diff --git a/wcs/qommon/scgi_server.py b/wcs/qommon/scgi_server.py
index 3f1545a..713c8a3 100644
--- a/wcs/qommon/scgi_server.py
+++ b/wcs/qommon/scgi_server.py
@@ -80,8 +80,19 @@ def run(create_publisher, host='localhost', port=3000, script_name=None,

 class QommonHTTPRequestHandler(simple_server.HTTPRequestHandler):
     def process(self, env, include_body=True):
+        logger = self.publisher.get_app_logger()
+        clock = time.clock()
         simple_server.HTTPRequestHandler.process(self, env, include_body=include_body)
+        clock = time.clock() - clock
+        method = env['REQUEST_METHOD']
+        path_info = env['PATH_INFO']
+        if clock > 0.01:
+            logger.debug('process [%d] handled request %s %s in %f seconds', os.getpid(), method, path_info, clock)
+        clock = time.clock()
         self.publisher.response.process_after_jobs()
+        clock = time.clock() - clock
+        if clock > 0.01:
+            logger.debug('process [%d] handled after jobs in %f seconds', os.getpid(), clock)

 def http_run(create_publisher, spawn_cron = False,


Demandes liées

Lié à Au quotidien - Bug #1283: crash "504 gateway time-out"Fermé28 février 2012

Actions

Historique

#1

Mis à jour par Frédéric Péters il y a environ 12 ans

On peut simplement mesurer les requêtes via Apache, façon "%D The time taken to serve the request, in microseconds.". ? Et forker() le process qui traite les afterjobs ?

#2

Mis à jour par Thomas Noël il y a environ 12 ans

Frédéric Péters a écrit :

On peut simplement mesurer les requêtes via Apache, façon "%D The
time taken to serve the request, in microseconds.". ?

+1

Et forker() le process qui traite les afterjobs ?

Yep, mais garder pour cela le log des temps trop longs (seuil à définir, 0.01 ça me semble court dans le cas d'un envoi de mail par exemple)

#3

Mis à jour par Thomas Noël il y a environ 12 ans

Thomas Noël a écrit :

Frédéric Péters a écrit :

On peut simplement mesurer les requêtes via Apache, façon "%D The
time taken to serve the request, in microseconds.". ?

+1

ajouté sur auquo :

--- a/apache2/apache2.conf
+++ b/apache2/apache2.conf
@@ -215,7 +215,7 @@ Include ports.conf
 # If you are behind a reverse proxy, you might want to change %h into %{X-Forwarded-For}i
 #
 LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
-LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
+LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" (%Dus)" combined
 LogFormat "%h %l %u %t \"%r\" %>s %O" common
 LogFormat "%{Referer}i -> %U" referer
 LogFormat "%{User-agent}i" agent
#4

Mis à jour par Thomas Noël il y a environ 12 ans

  • Statut changé de Nouveau à Fermé

Formats disponibles : Atom PDF