RailsLogVisualizer logoRailsLogVisualizer

Don't guess, see! The RailsLogVisualizer provides you with a visual way to explore your Ruby on Rails production.log and find out how your application is really used.

Download version 0.3: RailsLogVisualizer_0.3.dmg (487KB) or Visit the project on RubyForge.

ScreenShot1 ScreenShot2

Installation on OSX
  Simply download the .dmg and copy the RailsLogVisualizer application to your Application folder or folder of choice. Then click on the application.
Other OS
  I haven't yet packaged the application for Windows or other platforms. I will provide a zipped folder and simple instruction to run it using Ruby. If you are adventurous you can download the source using svn: svn checkout svn://rubyforge.org/var/svn/railslogvislzr.
User Guide
 

Loading a log file.

1) Choose a Ruby on Rails production or development log file by clicking the "Choose File" button on top of this window.
2) Press the "Load Log File" button.

Note: loading a 10Mb production log file with 30000 requests takes about 2 seconds on my MacBook Pro.
loading a 250Mb production log file with 530000 requests takes about 20 seconds.
loading a 4.5Gb production log file with 11 million request takes about 10 minutes.
The data is loaded in memory and must be reloaded once the application is closed.

Closing the application (OSX).

Just closing the browser window does NOT close the application.
You must close the application by right-clicking the RailsLogVisualizer icon in the dock and select the Quit menu.

Analyzing your log file data.

Once the log file is loaded you will see a breakdown of your requests by year, month, and day.
Click on the year, month, or day to see the controllers invocations during that period.
Click on the controller in the chart to see the method invocations during the selected period.
The method are further broken down based on their http methods (get, post, delete, ...).

Future Directions
 

I need your feedback. What would you like to see. Submit comments to daniel@onrails.org. This said here are some things I'll like to work on:

  • Complete the current functionality (keyboard navigation, filter data noise)
  • Add weekly data summaries
  • Add data snapshot (saves the result of parsing a log file, allows subsequent reload to be way faster)
  • Make it a Rails plug-in. Currently I use this tool by downloading the log file then analyzing it outside of the production system. But the current aggregation logic that is used is well suited for incremental aggregation of the data. So this approach could be extended to have different level of granularity and provide instant and rolling snapshot of the last hour, last week, ...
History
 

Nov 29 2006: v0.3 Improved log processing speed (6 times faster), renamed the project and artifacts from RailsLogAnalyzer to RailsLogVisualizer as the former was already used on RubyForge.

Nov 15 2006: v0.2 Release at the Rails Edge conference. This was a complete rewrite for simplicity and efficient of the analysis. No more use of sqlite nor Rails. Just memory and ruby. Removed geoip data. Read about v0.2 on onrails.org.

Aug 2006: v0.1 A first prototype that was a Ruby on Rails application using SQLite3. See initial post here and the v1.0 document here. But don't use it :-)

Enjoy!

Daniel Wanja.