Existe-t-il un moyen de spécifier une condition dans Apache httpd access_log pour ne conserver que les demandes dont le traitement a pris plus de 500 ms?
La directive CustomLog
vous permet de définir une condition (dans un 3ème argument optionnel) utilisée pour contrôler le moment où la requête est lancée. connecté. (Sur Apache 2.4+, cela peut prendre la forme d'une Apache Expression .) Cependant, cette condition est généralement basée sur un propriété de la requête (type de fichier, en-tête de requête, etc.), plutôt que quelque chose associé à la réponse . (Bien qu'il semble possible de créer une condition basée sur l'état de la réponse HTTP , car elle est explicitement mise à disposition dans le REQUEST_STATUS
variable serveur .)
Cependant, je ne vois pas comment créer un condition basé sur le temps de réponse du serveur . (?)
Une solution de contournement pourrait consister à inclure spécifiquement ces informations dans votre journal d'accès à l'aide de la chaîne de format %msT
(si vous souhaitez spécifiquement consigner cela en millisecondes) dans un format de journal personnalisé. Vous pouvez ensuite filtrer ces informations à l'aide d'un analyseur de fichier journal.
%T
- Le temps pris pour répondre à la demande, en secondes.
%{UNIT}T
- Le temps pris pour répondre à la demande, dans une unité de temps donnée par UNIT. Les unités valides sontms
pour les millisecondes,us
pour les microsecondes ets
pour les secondes. Utilisers
donne le même résultat que%T
sans aucun format; utiliserus
donne le même résultat que%D
. La combinaison de%T
avec une unité est disponible dans les versions 2.4.13 et ultérieures.
Référence:
http://httpd.Apache.org/docs/current/mod/mod_log_config.html#formats