Sidekiq statistic

Build Status Code Climate Gitter

Improved display of statistics for your sidekiq workers and jobs.

This gem work only with sidekiq version more than 3.3.4

Screenshots

Also you can check heroku application with rails app with this sidekiq plugin

Index page:

sidekiq-history_index

Worker page with table (per day):

sidekiq-history_worker

Worker page with log:

screenshot 2015-06-10 01 27 50

Installation

Add this line to your application's Gemfile:

gem 'sidekiq-statistic', github: 'davydovanton/sidekiq-statistic'

And then execute:

$ bundle

Usage

Open in your browser <sidekiq-path>/statistic page.

Not rails application

First step: read sidekiq documentation.

Second step: add require 'sidekiq-statistic' to you config.ru. For example:

# config.ru
require 'sidekiq/web'
require 'sidekiq-statistic'

use Rack::Session::Cookie, secret: 'some unique secret string here'
run Sidekiq::Web

Configuration

Sidekiq statistic gem have log_file option. This option lets you specify a custom path to sidekiq log file. By default this option equal log/sidekiq.log

Sidekiq::Statistic.configure do |config|
  config.log_file = 'test/helpers/logfile.log'
end

JSON API

/api/statistic.json

Returns statistic for each worker.

Params:

  • dateFrom - Date start (format: yyyy-mm-dd)
  • dateTo - Date end (format: yyyy-mm-dd)

Example:

$ curl http://example.com/sidekiq/api/statistic.json?dateFrom=2015-07-30&dateTo=2015-07-31

# =>
  {
    "workers": [
      {
        "name": "Worker",
        "last_job_status": "passed",
        "number_of_calls": {
          "success": 1,
          "failure": 0,
          "total": 1
        },
        "runtime": {
          "last": "2015-07-31 10:42:13 UTC",
          "max": 4.002,
          "min": 4.002,
          "average": 4.002,
          "total": 4.002
        }
      },

      ...
    ]
  }

/api/statistic/:worker_name.json

Returns worker statistic for each day in range.

Params:

  • dateFrom - Date start (format: yyyy-mm-dd)
  • dateTo - Date end (format: yyyy-mm-dd)

Example:

$ curl http://example.com/sidekiq/api/statistic/Worker.json?dateFrom=2015-07-30&dateTo=2015-07-31

# =>
{
  "days": [
    {
      "date": "2015-07-31",
      "failure": 0,
      "success": 1,
      "total": 1,
      "last_job_status": "passed",
      "runtime": {
        "last": null,
        "max": 0,
        "min": 0,
        "average": 0,
        "total": 0
      }
    },

    ...
  ]
}

How it works

how-it-works

Contributing

  1. Fork it ( https://github.com/davydovanton/sidekiq-statistic/fork )
  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 a new Pull Request