Development #1282
Ajouter le log de debug du temps de traitement des requêtes
0%
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
Historique
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 ?
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)
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