Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

sidekiq-statistic

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sidekiq-statistic

  • 1.4.0
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

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'

And then execute:

$ bundle

Usage

Open Statistic tab on your sidekiq page.

Not rails application

Read sidekiq documentation. After that 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 and last_log_lines options. log_file option lets you specify a custom path to sidekiq log file. By default this option equal log/sidekiq.log last_log lines option lets you specify a custom count of last logger file lines which will be displayed. By default this option equal 1000.

Sidekiq::Statistic.configure do |config|
  config.log_file = 'test/helpers/logfile.log'
  config.last_log_lines = 10_000
  config.max_timelist_length = 500_000
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
      }
    },

    ...
  ]
}

Update statistic inside middleware

You can update your worker statistic inside middleware. For this you should to update sidekiq:statistic redis hash. This hash has the following structure:

  • sidekiq:statistic - redis hash with all statistic
    • yyyy-mm-dd:WorkerName:passed - count of passed jobs for Worker name on yyyy-mm-dd
    • yyyy-mm-dd:WorkerName:failed - count of failed jobs for Worker name on yyyy-mm-dd
    • yyyy-mm-dd:WorkerName:failed - count of failed jobs for Worker name on yyyy-mm-dd
    • yyyy-mm-dd:WorkerName:last_job_status - string with status (passed or failed) for last job
    • yyyy-mm-dd:WorkerName:last_time - date of lact job performing
    • yyyy-mm-dd:WorkerName:queue - name of job queue (defauld by default)

For time information you should push the runtime value to yyyy-mm-dd:WorkerName:timeslist redis list.

How it works

Big image '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

FAQs

Package last updated on 04 Oct 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc