{"id":20836294,"url":"https://github.com/igrigorik/rack-aggregate","last_synced_at":"2025-09-05T02:16:30.495Z","repository":{"id":1293965,"uuid":"1235421","full_name":"igrigorik/rack-aggregate","owner":"igrigorik","description":"Rack response-time statistics aggregator middleware","archived":false,"fork":false,"pushed_at":"2011-02-26T18:52:24.000Z","size":711,"stargazers_count":67,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-17T19:48:44.671Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/igrigorik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-01-09T16:26:41.000Z","updated_at":"2023-12-20T13:42:27.000Z","dependencies_parsed_at":"2022-08-16T13:00:20.454Z","dependency_job_id":null,"html_url":"https://github.com/igrigorik/rack-aggregate","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/igrigorik/rack-aggregate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igrigorik%2Frack-aggregate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igrigorik%2Frack-aggregate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igrigorik%2Frack-aggregate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igrigorik%2Frack-aggregate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/igrigorik","download_url":"https://codeload.github.com/igrigorik/rack-aggregate/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igrigorik%2Frack-aggregate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273699817,"owners_count":25152307,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-05T02:00:09.113Z","response_time":402,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T00:29:24.183Z","updated_at":"2025-09-05T02:16:30.473Z","avatar_url":"https://github.com/igrigorik.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rack Aggregate\n\nStatistics aggregator middleware based on [Joseph Ruscio's aggregate gem](https://github.com/josephruscio/aggregate) 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.\n\n## Example\n\n    \u003e ruby examples/rackapp.rb\n    \u003e ab -c1 -n20 http://127.0.0.1:4567/ (run 20 requests against the app)\n    \u003e ...\n    \u003e curl http://127.0.0.1:4567/aggregate\n\n    count:    20\n    mean:    4100.30ms\n    min:    1000.11ms\n    max:    9000.17ms\n    std_dev:  2447.42ms\n\n    Request histogram (buckets in ms):\n    value |------------------------------------------------------------------| count\n      512 |@                                                                 |     1\n     1024 |@@@@@@@                                                           |     7\n     2048 |@@@@                                                              |     4\n     4096 |@@@@@@                                                            |     6\n     8192 |@@                                                                |     2\n          ~\n    Total |------------------------------------------------------------------|    20\n\n### Quickstart with Rack\n\n    gem install rack-aggregate\n\n    # in your rack app / rackup file\n    require 'rack/aggregate'\n    use Rack::Aggregate\n\n### Quickstart with Rails 3\n\n    # in your Gemfile\n    gem 'rack-aggregate', :require =\u003e 'rack/aggregate'\n\n    # in development.rb environment\n    config.middleware.use Rack::Aggregate\n\n## Wishlist\n\n- Configurable aggregate path\n- Custom sampling rate - no need to log every request\n- Other output formats? JSON?\n\n# License\n\n(The MIT License)\nCopyright © 2011 Ilya Grigorik","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figrigorik%2Frack-aggregate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figrigorik%2Frack-aggregate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figrigorik%2Frack-aggregate/lists"}