A command line tool that analyzes request logfiles (e.g. Rails, Apache, MySQL, Delayed::Job) to produce a performance report.
Ruby
Switch branches/tags
v1.12.10 v1.12.9 v1.12.8 request-log-analyzer-1.12.8 request-log-analyzer-1.12.7 request-log-analyzer-1.12.6 request-log-analyzer-1.12.5 request-log-analyzer-1.12.4 request-log-analyzer-1.12.3 request-log-analyzer-1.12.2 request-log-analyzer-1.12.1 request-log-analyzer-1.12.0 request-log-analyzer-1.11.1 request-log-analyzer-1.11.0 request-log-analyzer-1.10.1 request-log-analyzer-1.10.0 request-log-analyzer-1.9.10 request-log-analyzer-1.9.9 request-log-analyzer-1.9.8 request-log-analyzer-1.9.7 request-log-analyzer-1.9.6 request-log-analyzer-1.9.5 request-log-analyzer-1.9.4 request-log-analyzer-1.9.3 request-log-analyzer-1.9.2 request-log-analyzer-1.9.1 request-log-analyzer-1.9.0 request-log-analyzer-1.8.1 request-log-analyzer-1.8.0 request-log-analyzer-1.7.0 request-log-analyzer-1.6.4 request-log-analyzer-1.6.3 request-log-analyzer-1.6.2 request-log-analyzer-1.6.1 request-log-analyzer-1.6.0 request-log-analyzer-1.5.4 request-log-analyzer-1.5.3 request-log-analyzer-1.5.2 request-log-analyzer-1.5.1 request-log-analyzer-1.5.0 request-log-analyzer-1.4.2 request-log-analyzer-1.4.1 request-log-analyzer-1.4.0.1 request-log-analyzer-1.4.0 request-log-analyzer-1.3.7 request-log-analyzer-1.3.6 request-log-analyzer-1.3.5 request-log-analyzer-1.3.4 request-log-analyzer-1.3.2 request-log-analyzer-1.3.1 request-log-analyzer-1.3.0 request-log-analyzer-1.2.9 request-log-analyzer-1.2.7 request-log-analyzer-1.2.6 request-log-analyzer-1.2.5 request-log-analyzer-1.2.4 request-log-analyzer-1.2.3 request-log-analyzer-1.2.1 request-log-analyzer-1.2.0 request-log-analyzer-1.1.7 request-log-analyzer-1.1.6 request-log-analyzer-1.1.5.1 request-log-analyzer-1.1.5 request-log-analyzer-1.1.4 request-log-analyzer-1.1.3 request-log-analyzer-1.1.2 request-log-analyzer-1.1.1 request-log-analyzer-1.1.0 request-log-analyzer-1.01 request-log-analyzer-1.0.4 request-log-analyzer-1.0.3 request-log-analyzer-1.0.2 request-log-analyzer-1.0.1 request-log-analyzer-1.0.0 request-log-analyzer-0.3.4 request-log-analyzer-0.3.3 request-log-analyzer-0.3.2 request-log-analyzer-0.3.1 request-log-analyzer-0.3.0 request-log-analyzer-0.2.4 request-log-analyzer-0.2.3 request-log-analyzer-0.2.2 request-log-analyzer-0.2.1 request-log-analyzer-0.2.0 request-log-analyzer-0.1.2 request-log-analyzer-0.1.1 request-log-analyzer-0.1.0
Nothing to show
Pull request Compare This branch is 53 commits behind wvanbergen:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
lib
spec
tasks
.gitignore
.travis.yml
DESIGN.rdoc
Gemfile
Gemfile.activerecord2
Gemfile.activerecord3
Gemfile.activerecord4
LICENSE
README.rdoc
Rakefile
request-log-analyzer.gemspec

README.rdoc

Request-log-analyzer

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.

  • MIT licensed

  • Runs on all rubies

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

Additional information

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 (willem@railsdoctors.com) or Bart ten Brinke (bart@railsdoctors.com).