Getting Higher-Resolution Timing Data from httpd

Version 2

    The following instructions detail how to get higher resolution data on requests, including the backend (tomcat) latency thanks to mod-log-firstbyte .


    1. Copy the attached .so file into /usr/local/jive/httpd/modules/ on all webapp nodes. Ensure it has the following permissions:
      1. -rwxr-xr-x 1 root root 29945 Aug 10 18:49 
      e.g. chmod 755
    2. Edit /usr/local/jive/etc/httpd/conf/httpd.conf
      1. Add a LoadModule line like so
        1. LoadModule log_firstbyte_module /usr/local/jive/httpd/modules/ 
        This should go above the line that reads <IfModule log_config_module>
      2. Edit the LogFormat line that ends in common so that it looks like this:
        1. LogFormat "%{JiveClientIP}i %l %u %t \"%r\" %>s %b %D %k \"%{Referer}i\" \"%{User-Agent}i\" \"%{Content-Type}o\" %{JSESSIONID}C %F" common 
        i.e. change the %T to %D and add %F on at the end.
    3. Restart apache. A graceful restart is fine: /etc/init.d/jive-httpd graceful

    Then, you'll have log lines that look like:



    1. - - - [10/Aug/2011:18:35:40 -0600] "GET /index.jspa HTTP/1.0" 200 109749 104366 0 "-" "Wget/1.11.4 Red Hat modified" "text/html" - 84820 


    In this example, 104366 is the total time to serve the request in microseconds (so the whole request was served in 104ms) and 84820 microseconds elapsed between the request being fully read and the first byte of the response served (which roughly corresponds to the amount of time Tomcat took to process the request).