Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Rack response-time statistics aggregator middleware
branch: master

avoid ivars and extra array for response

This adds is needless overhead and prevents thread-safety when
used with a thread-safe Aggregate-like object is passed via
:aggregate on initialize.
latest commit 5dd825137f
Eric Wong authored
Failed to load latest commit information.
examples example rack app
lib/rack avoid ivars and extra array for response
spec allow :aggregate to pass existing Aggregate object
.gitignore hello world
.rspec hello world
Gemfile.lock base middleware structure add readme
Rakefile hello world

Rack Aggregate

Statistics aggregator middleware based on Joseph Ruscio's aggregate gem which provides: minimum, maximum, mean, standard deviation measures of your applications response latency. Best of all, it accomplishes this without recording or storing any of the actual sample values - meaning, by itself it will not impact your performance or memory footprint even across millions of requests.


> ruby examples/rackapp.rb
> ab -c1 -n20 (run 20 requests against the app)
> ...
> curl

count:    20
mean:    4100.30ms
min:    1000.11ms
max:    9000.17ms
std_dev:  2447.42ms

Request histogram (buckets in ms):
value |------------------------------------------------------------------| count
  512 |@                                                                 |     1
 1024 |@@@@@@@                                                           |     7
 2048 |@@@@                                                              |     4
 4096 |@@@@@@                                                            |     6
 8192 |@@                                                                |     2
Total |------------------------------------------------------------------|    20

Quickstart with Rack

gem install rack-aggregate

# in your rack app / rackup file
require 'rack/aggregate'
use Rack::Aggregate

Quickstart with Rails 3

# in your Gemfile
gem 'rack-aggregate', :require => 'rack/aggregate'

# in development.rb environment
config.middleware.use Rack::Aggregate


  • Configurable aggregate path
  • Custom sampling rate - no need to log every request
  • Other output formats? JSON?


(The MIT License) Copyright © 2011 Ilya Grigorik

Something went wrong with that request. Please try again.