This is a simple command line tool to analyze request log files in various formats to produce a performance report. Its purpose is to find what actions are best candidates for optimization.
Analyzes log files. Currently supports: Amazon S3, Apache, Delayed::Job, Merb, Mysql, PostgreSQL, Rack, Rails and more.
Combines multiple files and decompresses compressed files, which comes in handy if you are using logrotate.
Uses several metrics, including cumulative request time, mean request time, process blockers, database and rendering time, HTTP methods and statuses, Rails action cache statistics, etc.) (Sample output: github.com/wvanbergen/request-log-analyzer/wiki/sample-output)
Low memory footprint and reasonably fast, so it is safe to run on a production server.
See the project wiki at github.com/wvanbergen/request-log-analyzer/wiki for documentation and additional information.
Installation & basic usage
Install request-log-analyzer as a Ruby gem (you might need to run this command as root by prepending sudo to it):
$ gem install request-log-analyzer
To analyze a Rails log file and produce a performance report, run request-log-analyzer like this:
$ request-log-analyzer log/production.log
For more details, other file formats, and available command line options, see the project's wiki at github.com/wvanbergen/request-log-analyzer/wiki
Benchmarking on different rubies
$ time ./bin/request-log-analyzer 40MBRailsFile.log ruby-1.9.2-p180 15.19s user 0.95s system 99% cpu 16.143 total ree-1.8.7-2011.03 22.81s user 1.28s system 92% cpu 25.938 total ruby-1.8.7-p334 25.21s user 1.02s system 99% cpu 26.238 total jruby-1.5.3 32.64s user 4.84s system 99% cpu 37.629 total rbx-2.0.0pre 39.62s user 2.24s system 104% cpu 40.098 total macruby 75.00s user 20.10s system 110% cpu 1:26.13 total
Request-log-analyzer was designed and built by Willem van Bergen and Bart ten Brinke.
Do you have a rails application that is not performing as it should? If you need an expert to analyze your application, feel free to contact either Willem van Bergen (firstname.lastname@example.org) or Bart ten Brinke (email@example.com).