Skip to content
This repository

Use Google Analytics for Rails App Performance Monitoring.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib Bump version. November 18, 2012
Octocat-spinner-32 .gitignore Initial import. October 02, 2012
Octocat-spinner-32 Gemfile
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.md Update README.md November 16, 2012
Octocat-spinner-32 Rakefile
Octocat-spinner-32 garelic.gemspec
README.md

Garelic: Use Google Analytics as "New Relic" performance monitoring for your Rails app

This gem uses Google Analytics User Timing API to report application performance statistics directly to Google Analytics, where you can slice & dice your data as you wish.

Here are some features with pictures:

Or look at these slides from a Garelic presentation.

Installation

It's easy as 1-2-3.

Step 1. Add this line to your application's Gemfile:

gem 'garelic'

Step 2. Add <%= Garelic.monitoring 'UA-XXXXXX-X' %> instrumentation in application layout template (before the closing </head> tag) like this:

<head>
    <!-- other rails stuff -->
    <%= Garelic.monitoring 'UA-XXXXXX-X' %>
    <!-- make sure you remove your old GA code! -->
</head>

Step 3. Go to Google Analytics > Content > Site Speed > User Timings

Enjoy!

Known advantages

  • it's free
  • shows slow performing pages (not only actions)
  • show response times histogram for any action (response time averages tend to lie, since distribution of response times is multimodal)
  • segment/slice/dice response data across any dimensions available in your GA account

Known drawbacks

  • you can only track actions that return a response body (redirects, ajax-requests & async jobs are not supported)
  • all timings are visible in page source code (if you are concerned about this look elsewere)
  • caching GA code (e.g. page caching) & not modified response will probably break/skew reported statistics
  • adding user timing table widgets to GA dashboards does not preserve sorting order (wtf?)
  • it's kind of a hack

TODO

  • add support for adding custom user tracers (e.g. for external services)

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request
Something went wrong with that request. Please try again.