systemadmin.es > LAMP y web > El tiempo de servir una petición en Apache

El tiempo de servir una petición en Apache

En los logs de apache podemos indicar que nos guarde el tiempo que ha tardado a servir la petición. Vamos a ver como:

Podemos consultar la documentación del formato de los logs para ver todas las opciones que tenemos disponibles. Las referentes al tiempo que se tarda en procesar una petición son:

  • %D: Tiempo a servir la petición en microsegundos.
  • %T: Tiempo a servir la petición en segundos.

Supongamos que queremos añadir el tiempo en segundos al final del típico log combined:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

A continuación definimos la siguiente linea:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" time: %T segundos" combined_plus_secs

Con esto hemos definido un formato de log similar al combined con los segundos que tarda a servir la petición llamado combined_plus_secs (podemos escoger cualquier nombre). Para usar este nuevo formato de logs debemos especificar el nombre del formato en la directiva “CustomLog“. Por ejemplo:

CustomLog "|/usr/sbin/cronolog  --symlink=/data/logs/ejemplo.de/access_log /data/logs/ejemplo.de/%Y%m/access_log.%Y%m%d" combined_plus_secs

Hay que tener mucho cuidado con esto, ya que si la petición no se llega a servir no se llega a escribir en el log. Esto ocurre porque escribir en el log es el último paso para servir una petición.

Por ejemplo, en un entorno con mod_jk y tomcat, si la aplicación java por algún motivo no llega a servir la petición nunca no lo veremos reflejado en los logs, pero si veremos como el apache va lanzando procesos hasta llegar al MaxClients.

Si deseamos que las peticiones se inscriban en el log antes de empezar y al acabar podemos usar mod_log_forensic, provocando un menor rendimiento del apache por la carga extra.

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>