Want your Rails performance KPIs in your StatsD-compatible metric system with almost zero effort? Of course you do! Meet
scout_statsd! This gem is an extension of the Scout Ruby monitoring agent (
scout_apm), and makes it easy to create an app performance dashboard.
A Scout account isn't required, but it certainly makes getting to the source of app performance easier 😉.
Using DogStatsD? Checkout scout_dogstatsd_ruby, which adds tags to metrics.
The following metrics are reported w/o any custom instrumentation steps:
|web.duration_ms||timer||The total duration of web requests in milliseconds|
|job.duration_ms||timer||The total duration of background jobs (Sidekiq, DelayedJob, etc.) in milliseconds|
|web.error_count||counter||A count of web requests that throw an exception|
|job.error_count||counter||A count of background jobs that throw an exception|
|web.queue_time_ms||timer||The time spent in request queuing in milliseconds|
|job.queue_time_ms||timer||The time between when a job is inserted into a background job queue and when execution begins in milliseconds|
Now, you can correlate app performance metrics with all of your other system metrics.
Add this line to your application's Gemfile:
And then execute:
Or install it yourself as:
$ gem install scout_statsd
1. Add a
config/initializers/scout_statsd.rb file to your Rails app:
ScoutStatsd.configure(StatsD) # StatsD uses one of the statsd-instrument backends
StatsD is a statsd-instrument client.
2. Add a
config/scout_apm.yml file to your Rails app:
This step isn't required if you are already using Scout.
common: &defaults monitor: true development: <<: *defaults monitor: false # set to true to test in your development environment production: <<: *defaults
Metrics are only sent if
monitor: true for the associated Rails environment.
See the Scout docs for advanced configuration instructions.
How it works
After each transaction (a web request or background job), the metrics specific to that transaction are transmitted via the StatsD protocol to the client passed through to
ScoutStatsd#configure. No code changes are required: the
scout_apm gem automatically instruments Rails controller-actions and background jobs. Easy peasy!
Bug reports and pull requests are welcome on GitHub at https://github.com/scoutapp/scout_statsd_ruby.
The gem is available as open source under the terms of the MIT License.