Sidekiq StatsD is a Sidekiq server middleware to send Sidekiq metrics through statsd:
- global metrics
- queue metrics
- worker metrics (
processing
,runtime
) - job metrics (
processing_time
andsuccess
/failure
)
Sidekiq::Statsd is tested against several Ruby versions.
Add these lines to your application's Gemfile:
gem "statsd-ruby"
# or if you are using Datadog
# gem "dogstatsd-ruby"
gem "sidekiq-statsd"
And then execute:
$ bundle
Or install it yourself as:
$ gem install sidekiq-statsd
In a Rails initializer or wherever you've configured Sidekiq, add Sidekiq::Statsd to your server middleware:
require 'statsd'
statsd = Statsd.new('localhost', 8125)
# or if you are using Datadog
# require 'datadog/statsd'
# statsd = Datadog::Statsd.new('localhost', 8125)
Sidekiq.configure_server do |config|
config.server_middleware do |chain|
chain.add Sidekiq::Statsd::ServerMiddleware, env: "production", prefix: "worker", statsd: statsd
end
end
# @param [Hash] options The options to initialize the StatsD client.
# @option options [Statsd] :statsd Existing [statsd client](https://github.com/github/statsd-ruby) to use.
# @option options [String] :env ("production") The env to segment the metric key (e.g. env.prefix.worker_name.success|failure).
# @option options [String] :prefix ("worker") The prefix to segment the metric key (e.g. env.prefix.worker_name.success|failure).
# @option options [String] :sidekiq_stats ("true") Send Sidekiq global stats e.g. total enqueued, processed and failed.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am "Add some feature"
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
MIT Licensed. See LICENSE for details.