An open API service indexing awesome lists of open source software.

https://github.com/phstc/sidekiq-statsd

Sidekiq StatsD is a Sidekiq server middleware to send Sidekiq worker metrics through statsd.
https://github.com/phstc/sidekiq-statsd

Last synced: 9 months ago
JSON representation

Sidekiq StatsD is a Sidekiq server middleware to send Sidekiq worker metrics through statsd.

Awesome Lists containing this project

README

          

# Sidekiq::Statsd

[![Build Status](https://secure.travis-ci.org/phstc/sidekiq-statsd.png)](http://travis-ci.org/phstc/sidekiq-statsd)
[![Dependency Status](https://gemnasium.com/phstc/sidekiq-statsd.png)](https://gemnasium.com/phstc/sidekiq-statsd)

Sidekiq StatsD is a [Sidekiq server middleware](https://github.com/mperham/sidekiq/wiki/Middleware) to send Sidekiq metrics through [statsd](https://github.com/reinh/statsd):

- [global metrics](https://github.com/mperham/sidekiq/wiki/API#wiki-stats)
- [queue metrics](https://github.com/mperham/sidekiq/wiki/API#queue)
- [worker metrics](https://github.com/mperham/sidekiq/wiki/API#workers) (`processing`, `runtime`)
- job metrics (`processing_time` and `success` / `failure`)

## Compatibility

Sidekiq::Statsd is tested against [several Ruby versions](.travis.yml#L4).

## Installation

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

## Configuration

In a Rails initializer or wherever you've configured Sidekiq, add
Sidekiq::Statsd to your server middleware:

```ruby
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
```

### Sidekiq::Statsd::ServerMiddleware options

```ruby
# @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.
```

## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am "Add some feature"`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request

## License

MIT Licensed. See [LICENSE](LICENSE) for details.