0.0
No commit activity in last 3 years
No release in over 3 years
Yabeda plugin for easy collecting of most important Faktory Ruby worker metrics: number of executed jobs, job runtime, etc…
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

>= 6.0
~> 2.0
~> 13.0
~> 3.0

Runtime

 Project Readme

Yabeda::Faktory

Built-in metrics for monitoring Faktory worker for Ruby out of the box! Part of the yabeda suite.

For monitoring of Faktory server you will need to use separate solution, e.g. faktory_exporter for Prometheus.

Installation

gem 'yabeda-faktory'

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

# If you're using Railsm don't forget to add plugin for it:
# gem 'yabeda-rails'
# But if not then you should run `Yabeda.configure!` manually when your app is ready.

And then execute:

$ bundle

And that is it! Faktory metrics are being collected!

Additionally, depending on your adapter, you may want to setup metrics export. E.g. for yabeda-prometheus:

# config/initializers/faktory or elsewhere
Faktory.configure_worker do |_config|
  Yabeda::Prometheus::Exporter.start_metrics_server!
end

Metrics

  • Total number of executed jobs: faktory_jobs_executed_total - (segmented by queue, worker job class name, and whether their execution was successful)
  • Time of job run: faktory_job_execution_runtime (seconds per job execution, segmented by queue, worker job class name, and whether their execution was successful)
  • Total number of enqueued jobs: faktory_jobs_enqueued_total - (segmented by queue, worker job class name, and whether enqueue was successful)
  • Time of job run: faktory_job_enqueue_runtime (seconds per job enqueue, segmented by queue, worker job class name, and whether enqueue was successful

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

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

Releasing

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

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

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

  3. Make a commit:

    git add lib/yabeda/faktory/version.rb CHANGELOG.md
    version=$(ruby -r ./lib/yabeda/faktory/version.rb -e "puts Gem::Version.new(Yabeda::Faktory::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.