nagios_check_resque 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ea510ab463796225c4c28151edfcf363ffa1cf3b
4
- data.tar.gz: fcabefd39deea0fc6ab465b257497fc86f45b2f9
3
+ metadata.gz: 5c7350790cc753e49727fed05140218542a07708
4
+ data.tar.gz: 69ef4dae4f26fd19e33f5154a26b57683faf944f
5
5
  SHA512:
6
- metadata.gz: 929d21db1b9987ee1b34df5f9d08bb64be6881ca47adc5cb467caf80bbe745372b03ab7b12236cdf52acb08bfd8adffa8c6ea13b0b1d02ba705cd43172f6990e
7
- data.tar.gz: d5423867a518a023e70835bc4999737bf1d5c2e941d75458b1aaec371f9101b6a850846f8cca0bade454d09de15262afa03aed0a7704ad903b42c5c2cc0c80e0
6
+ metadata.gz: 68bf5833da6dd7b1c98ebab42b87b0d87a1c97145bd2470896753d752e28895e013902f59ca18cce47d191069859c403dfb83d4b179bd1997bdee952bc12bbce
7
+ data.tar.gz: b90a817a4b9a544f32bceb6e1d7eff74c54bdf9ff59c1466dddf226212b1f127e2c3ce046f1412bc9aab8c6a3ef99d5f3113a3c09685404398a2a29bfadd3dd2
data/.gitignore CHANGED
@@ -6,4 +6,5 @@
6
6
  /doc/
7
7
  /pkg/
8
8
  /spec/reports/
9
+ /spec/examples.txt
9
10
  /tmp/
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --require spec_helper
data/.travis.yml ADDED
@@ -0,0 +1,10 @@
1
+ language: ruby
2
+ sudo: false
3
+ rvm:
4
+ - 2.0.0
5
+ - 2.1
6
+ - 2.2.7
7
+ - 2.3.4
8
+ - 2.4.1
9
+ - ruby-head
10
+ before_install: gem install bundler
data/CHANGELOG.md CHANGED
@@ -2,10 +2,20 @@
2
2
 
3
3
  ### Changes on `master`
4
4
 
5
- [Compare changes](https://github.com/codevise/nagios_check_resque/compare/v1.0.0...master)
5
+ [Compare changes](https://github.com/codevise/nagios_check_resque/compare/v1.1.0...master)
6
6
 
7
7
  None so far.
8
8
 
9
+ ### Version 1.1.0
10
+
11
+ 2017-05-26
12
+
13
+ [Compare changes](https://github.com/codevise/nagios_check_resque/compare/v1.0.0...v1.1.0)
14
+
15
+ - Allow passing custom Redis URL as environment variable or command
16
+ line option.
17
+ - Make checks store human readable message.
18
+
9
19
  ### Version 1.0.0
10
20
 
11
21
  2017-02-21
data/Gemfile CHANGED
@@ -2,3 +2,5 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in nagios_check_resque.gemspec
4
4
  gemspec
5
+
6
+ gem 'nagios_check', git: 'https://github.com/tf/nagios_check', branch: 'check-result'
data/README.md CHANGED
@@ -1,15 +1,16 @@
1
1
  # Nagios Check Resque
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/nagios_check_resque.svg)](http://badge.fury.io/rb/nagios_check_resque)
4
+ [![Build Status](https://travis-ci.org/codevise/nagios_check_resque.svg?branch=master)](https://travis-ci.org/codevise/nagios_check_resque)
4
5
 
5
- Nagios plugins to check Resque queue sized and number of failed jobs.
6
+ Nagios plugins to check Resque queue sizes and number of failed jobs.
6
7
 
7
8
  ## Installation
8
9
 
9
10
  Add this line to your application's Gemfile:
10
11
 
11
12
  ```ruby
12
- gem 'nagios_check_resque', require: false
13
+ gem 'nagios_check_resque', '~> 1.0', require: false
13
14
  ```
14
15
 
15
16
  And then execute:
@@ -40,6 +41,16 @@ more than 5 failed jobs but not more than 8, the result is WARNING.
40
41
  If there are more than 8 failed jobs, the result is CRITICAL. If the
41
42
  command takes more than 10 seconds to finish, the result is UNKNOWN.
42
43
 
44
+ ## Specifying a Redis URL
45
+
46
+ By default the checks assume that Redis is accessible at
47
+ `localhost:6379`. A different Redis URL can either be passed via the
48
+ command line:
49
+
50
+ $ bundle exec nagios_check_resque_failed_jobs -w 5 -c 8 -t 10 --redis-url redis://other:6379
51
+
52
+ or by setting the environment variable `REDIS_URL`.
53
+
43
54
  ## Example Nagios Configuration
44
55
 
45
56
  You can define a custom Nagios command to invoke the executables via
@@ -86,8 +97,9 @@ define service {
86
97
  ## Development
87
98
 
88
99
  After checking out the repo, run `bin/setup` to install
89
- dependencies. You can also run `bin/console` for an interactive prompt
90
- that will allow you to experiment.
100
+ dependencies. Run `bin/rspec` to execute the test suite. You can also
101
+ run `bin/console` for an interactive prompt that will allow you to
102
+ experiment.
91
103
 
92
104
  To install this gem onto your local machine, run `bundle exec rake
93
105
  install`. To release a new version, update the version number in
data/Rakefile CHANGED
@@ -1,2 +1,6 @@
1
1
  require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
2
6
  task :default => :spec
data/bin/rake ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+ #
4
+ # This file was generated by Bundler.
5
+ #
6
+ # The application 'rake' is installed as part of a gem, and
7
+ # this file is here to facilitate running it.
8
+ #
9
+
10
+ require "pathname"
11
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
12
+ Pathname.new(__FILE__).realpath)
13
+
14
+ require "rubygems"
15
+ require "bundler/setup"
16
+
17
+ load Gem.bin_path("rake", "rake")
data/bin/rspec ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+ #
4
+ # This file was generated by Bundler.
5
+ #
6
+ # The application 'rspec' is installed as part of a gem, and
7
+ # this file is here to facilitate running it.
8
+ #
9
+
10
+ require "pathname"
11
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
12
+ Pathname.new(__FILE__).realpath)
13
+
14
+ require "rubygems"
15
+ require "bundler/setup"
16
+
17
+ load Gem.bin_path("rspec-core", "rspec")
@@ -1,5 +1,4 @@
1
1
  require 'nagios_check_resque/version'
2
2
 
3
3
  module NagiosCheckResque
4
- # Your code goes here...
5
4
  end
@@ -1,29 +1,28 @@
1
1
  require 'nagios_check'
2
-
3
- require 'resque'
4
- require 'resque/failure/redis'
2
+ require 'nagios_check_resque/resque_adapter'
5
3
 
6
4
  module NagiosCheckResque
7
5
  # Warn if there are failed jobs
8
6
  class FailedJobsCheck
9
7
  include NagiosCheck
10
8
 
11
- on '--redis-host HOST', default: 'redis://localhost:6379'
9
+ on '--redis-url URL', default: ENV.fetch('REDIS_URL', 'redis://localhost:6379')
12
10
 
13
11
  enable_warning
14
12
  enable_critical
15
13
  enable_timeout
16
14
 
17
- def check
18
- setup_resque
19
- store_value(:failed, Resque::Failure::Redis.count)
15
+ def initialize(resque = ResqueAdapter.new)
16
+ @resque = resque
20
17
  end
21
18
 
22
- private
19
+ def check
20
+ @resque.setup(redis_url: options['redis-url'])
21
+
22
+ failed_jobs_count = @resque.failed_count
23
23
 
24
- def setup_resque
25
- Resque.redis = Redis.new(host: options.redis_host)
26
- Resque
24
+ store_message("#{failed_jobs_count} failed jobs")
25
+ store_value(:failed, failed_jobs_count)
27
26
  end
28
27
  end
29
28
  end
@@ -1,5 +1,5 @@
1
1
  require 'nagios_check'
2
- require 'resque'
2
+ require 'nagios_check_resque/resque_adapter'
3
3
 
4
4
  module NagiosCheckResque
5
5
  # Prevent jobs from queuing up
@@ -7,15 +7,20 @@ module NagiosCheckResque
7
7
  include NagiosCheck
8
8
 
9
9
  on '--queues QUEUES', :mandatory
10
- on '--redis-host HOST', default: 'redis://localhost:6379'
10
+ on '--redis-url URL', default: ENV.fetch('REDIS_URL', 'redis://localhost:6379')
11
11
 
12
12
  enable_warning
13
13
  enable_critical
14
14
  enable_timeout
15
15
 
16
+ def initialize(resque = ResqueAdapter.new)
17
+ @resque = resque
18
+ end
19
+
16
20
  def check
17
- setup_resque
21
+ @resque.setup(redis_url: options['redis-url'])
18
22
 
23
+ store_message(queue_sizes_message)
19
24
  store_value(:max, queue_sizes.values.max)
20
25
 
21
26
  queue_sizes.each do |name, size|
@@ -25,18 +30,20 @@ module NagiosCheckResque
25
30
 
26
31
  private
27
32
 
33
+ def queue_sizes_message
34
+ queue_sizes.sort_by { |_, size| size }.reverse.map { |name, size|
35
+ "#{size} in #{name}"
36
+ }.compact.join(', ')
37
+ end
38
+
28
39
  def queue_sizes
29
40
  @queue_sizes ||= queues.each_with_object({}) do |name, sizes|
30
- sizes[name] = Resque.size(name)
41
+ sizes[name] = @resque.queue_size(name)
31
42
  end
32
43
  end
33
44
 
34
45
  def queues
35
46
  options.queues.split(',')
36
47
  end
37
-
38
- def setup_resque
39
- Resque.redis = Redis.new(host: options.redis_host)
40
- end
41
48
  end
42
49
  end
@@ -0,0 +1,18 @@
1
+ require 'resque'
2
+ require 'resque/failure/redis'
3
+
4
+ module NagiosCheckResque
5
+ class ResqueAdapter
6
+ def setup(options)
7
+ Resque.redis = options[:redis_url]
8
+ end
9
+
10
+ def queue_size(queue)
11
+ Resque.size(queue)
12
+ end
13
+
14
+ def failed_count
15
+ Resque::Failure::Redis.count
16
+ end
17
+ end
18
+ end
@@ -1,3 +1,3 @@
1
1
  module NagiosCheckResque
2
- VERSION = '1.0.0'.freeze
2
+ VERSION = '1.1.0'.freeze
3
3
  end
@@ -20,9 +20,12 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ['lib']
22
22
 
23
+ spec.required_ruby_version = '>= 2.0'
24
+
23
25
  spec.add_dependency 'nagios_check', '~> 0.4.0'
24
26
  spec.add_dependency 'resque', '~> 1.25'
25
27
 
26
28
  spec.add_development_dependency 'bundler', '~> 1.14'
27
29
  spec.add_development_dependency 'rake', '~> 10.0'
30
+ spec.add_development_dependency 'rspec', '~> 3.6'
28
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nagios_check_resque
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Codevise Solutions Ltd
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-02-21 00:00:00.000000000 Z
11
+ date: 2017-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nagios_check
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.6'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.6'
69
83
  description:
70
84
  email:
71
85
  - info@codevise.de
@@ -76,6 +90,8 @@ extensions: []
76
90
  extra_rdoc_files: []
77
91
  files:
78
92
  - ".gitignore"
93
+ - ".rspec"
94
+ - ".travis.yml"
79
95
  - CHANGELOG.md
80
96
  - CODE_OF_CONDUCT.md
81
97
  - Gemfile
@@ -83,12 +99,15 @@ files:
83
99
  - README.md
84
100
  - Rakefile
85
101
  - bin/console
102
+ - bin/rake
103
+ - bin/rspec
86
104
  - bin/setup
87
105
  - exe/nagios_check_resque_failed_jobs
88
106
  - exe/nagios_check_resque_queue_sizes
89
107
  - lib/nagios_check_resque.rb
90
108
  - lib/nagios_check_resque/failed_jobs_check.rb
91
109
  - lib/nagios_check_resque/queue_size_check.rb
110
+ - lib/nagios_check_resque/resque_adapter.rb
92
111
  - lib/nagios_check_resque/version.rb
93
112
  - nagios_check_resque.gemspec
94
113
  homepage: http://github.com/codevise/nagios_check_resque
@@ -103,7 +122,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
122
  requirements:
104
123
  - - ">="
105
124
  - !ruby/object:Gem::Version
106
- version: '0'
125
+ version: '2.0'
107
126
  required_rubygems_version: !ruby/object:Gem::Requirement
108
127
  requirements:
109
128
  - - ">="