Adds benchmarking methods to Sidekiq workers, keeps metrics and adds tab to Web UI to let you browse them.
Add this line to your application's Gemfile:
gem 'sidekiq-benchmark'
And then execute:
$ bundle
Redis 2.6.0 or newer required
class SampleWorker
include Sidekiq::Worker
include Sidekiq::Benchmark::Worker
def perform(id)
benchmark.first_metric do
100500.times do something end
end
benchmark.second_metric do
42.times do anything end
end
benchmark.finish
end
end
class OtherSampleWorker
include Sidekiq::Worker
include Sidekiq::Benchmark::Worker
def perform(id)
benchmark do |bm|
bm.some_metric do
100500.times do
end
end
bm.other_metric do
something_code
end
bm.some_metric do
# some_metric measure continues
end
end
# if block given, yield and finish
end
end
When you use Sidekiq::Testing you
must load sidekiq-benchmark/testing
to stop saving benchmark data to redis.
Just add next code to your test or spec helper:
require 'sidekiq-benchmark/testing'
- 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