Home

Awesome

Yabeda::Shoryuken

Gem Version

Yabeda plugin for easy Shoryuken gem collect metrics from your application

Installation

Add this line to your application's Gemfile:

gem 'yabeda-shoryuken'
# Then add monitoring system adapter, e.g.:
# gem 'yabeda-cloudwatch'

And then execute:

$ bundle

If you're not on Rails then configure Yabeda after your application was initialized:

Yabeda.configure!

If you're using Ruby on Rails then Yabeda will configure itself automatically!

And that is it! Shoryuken metrics are being collected!

Metrics

Local per-process metrics

Metrics representing state of current Shoryuken worker process and stats of executed or executing jobs:

Client metrics

Metrics collected where jobs are being pushed to queues (everywhere):

Custom tags

You can add additional tags to these metrics by declaring yabeda_tags method in your worker.

# This block is optional but some adapters (like Prometheus) requires that all tags should be declared in advance
Yabeda.configure do
  default_tag :importance, nil
end
class MyWorker
  include Shoryuken::Worker
  def yabeda_tags(*params) # This method will be called first, before +perform+
    { importance: extract_importance(params) }
  end
  def perform(*params)
    # Your logic here
  end
end

Configuration

Configuration is handled by anyway_config gem. With it you can load settings from environment variables (upcased and prefixed with YABEDA_SIDEKIQ_), YAML files, and other sources. See anyway_config docs for details.

Config keyTypeDefaultDescription
collect_cluster_metricsbooleanEnabled in Shoryuken worker processes, disabled otherwiseDefines whether this Ruby process should collect and expose metrics representing state of the whole Shoryuken installation (queues, processes, etc).
declare_process_metricsbooleanEnabled in Shoryuken worker processes, disabled otherwiseDeclare metrics that are only tracked inside worker process even outside of them. Useful for multiprocess metric collection.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/yabeda-rb/yabeda-shoryuken.

Releasing

  1. Bump version number in lib/yabeda/shoryuken/version.rb

    In case of pre-releases keep in mind rubygems/rubygems#3086 and check version with command like Gem::Version.new(Yabeda::Shoryuken::VERSION).to_s

  2. Fill CHANGELOG.md with missing changes, add header with version and date.

  3. Make a commit:

    git add lib/yabeda/shoryuken/version.rb CHANGELOG.md
    version=$(ruby -r ./lib/yabeda/shoryuken/version.rb -e "puts Gem::Version.new(Yabeda::Shoryuken::VERSION)")
    git commit --message="${version}: " --edit
    
  4. Create annotated tag:

    git tag v${version} --annotate --message="${version}: " --edit --sign
    
  5. Fill version name into subject line and (optionally) some description (list of changes will be taken from changelog and appended automatically)

  6. Push it:

    git push --follow-tags
    
  7. GitHub Actions will create a new release, build and push gem into RubyGems! You're done!

License

The gem is available as open source under the terms of the MIT License.