riemann-babbler 0.8.8 → 0.8.9

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.
data/.gitignore CHANGED
@@ -1 +1,2 @@
1
1
  pkg/
2
+ .idea
data/Gemfile CHANGED
@@ -1,15 +1,15 @@
1
1
  source :rubygems
2
2
 
3
- gem "riemann-client"
4
- gem "configatron"
5
- gem "logger"
6
- gem "trollop"
7
- gem "sys-filesystem"
8
- gem "rest-client"
9
- gem "sequel"
3
+ gem 'riemann-client'
4
+ gem 'configatron'
5
+ gem 'logger'
6
+ gem 'trollop'
7
+ gem 'sys-filesystem'
8
+ gem 'rest-client'
9
+ gem 'sequel'
10
10
 
11
- gem "rspec"
12
- gem "rake"
11
+ gem 'rspec'
12
+ gem 'rake'
13
13
 
14
- gem "pry"
15
- gem "awesome_print"
14
+ gem 'pry'
15
+ gem 'awesome_print'
data/README.md CHANGED
@@ -17,7 +17,7 @@ where [options] are:
17
17
  ```
18
18
 
19
19
  ### Config
20
- Bubbler load main config and merge custom plugins
20
+ Babbler load main config and merge custom plugins
21
21
  ```yaml
22
22
  riemann:
23
23
  host: riemann.host
@@ -26,7 +26,7 @@ riemann:
26
26
  - prod
27
27
  - web
28
28
  suffix: ".testing"
29
- preffix: "previx"
29
+ preffix: "prefix"
30
30
 
31
31
  plugins:
32
32
  dirs:
data/bin/riemann-babbler CHANGED
@@ -22,7 +22,7 @@ Usage:
22
22
  where [options] are:
23
23
  EOS
24
24
 
25
- opt :config, "Config file", :default => "/etc/riemann-babbler/config.yml"
25
+ opt :config, 'Config file', :default => '/etc/riemann-babbler/config.yml'
26
26
  end
27
27
 
28
28
  # logger
data/lib/deep_merge.rb CHANGED
@@ -2,12 +2,12 @@
2
2
  class Hash
3
3
 
4
4
  def deep_merge!(specialized_hash)
5
- return internal_deep_merge!(self, specialized_hash)
5
+ internal_deep_merge!(self, specialized_hash)
6
6
  end
7
7
 
8
8
 
9
9
  def deep_merge(specialized_hash)
10
- return internal_deep_merge!(Hash.new.replace(self), specialized_hash)
10
+ internal_deep_merge!(Hash.new.replace(self), specialized_hash)
11
11
  end
12
12
 
13
13
 
@@ -43,6 +43,6 @@ class Hash
43
43
 
44
44
  #puts "deep merge done."
45
45
 
46
- return source_hash
46
+ source_hash
47
47
  end
48
48
  end
@@ -37,7 +37,7 @@ module Riemann
37
37
 
38
38
  # Доступ к конфигу определенного плагина
39
39
  def plugin
40
- plugin_name = self.class.name.split( "::" ).last.gsub( /(\p{Lower})(\p{Upper})/, "\\1_\\2" ).downcase
40
+ plugin_name = self.class.name.split('::').last.gsub( /(\p{Lower})(\p{Upper})/, "\\1_\\2" ).downcase
41
41
  options.plugins.send plugin_name
42
42
  end
43
43
 
@@ -78,7 +78,7 @@ module Riemann
78
78
  if options.riemann.installation.nil?
79
79
  hostname += options.riemann.suffix unless options.riemann.suffix.nil?
80
80
  else
81
- hostname += ( "." + options.riemann.installation )
81
+ hostname += ( '.' + options.riemann.installation )
82
82
  end
83
83
  hostname = options.riemann.prefix + hostname unless options.riemann.prefix.nil?
84
84
  hostname
@@ -102,7 +102,7 @@ module Riemann
102
102
 
103
103
  def run
104
104
  # выйти если run_plugin не равен true
105
- return 0 unless run_plugin == true
105
+ return 0 unless run_plugin
106
106
  t0 = Time.now
107
107
  loop do
108
108
  begin
@@ -118,17 +118,17 @@ module Riemann
118
118
  # хелпер, описание статуса
119
119
  def state(my_state)
120
120
  return 'critical' if my_state.nil?
121
- unless plugin.states.warning.nil?
121
+ if plugin.states.warning.nil?
122
+ my_state >= plugin.states.critical ? 'critical' : 'ok'
123
+ else
122
124
  case
123
- when my_state.between?(plugin.states.warning, plugin.states.critical)
124
- 'warning'
125
- when my_state > plugin.states.warning
126
- 'critical'
127
- else
128
- 'ok'
125
+ when my_state.between?(plugin.states.warning, plugin.states.critical)
126
+ 'warning'
127
+ when my_state > plugin.states.warning
128
+ 'critical'
129
+ else
130
+ 'ok'
129
131
  end
130
- else
131
- my_state >= plugin.states.critical ? 'critical' : 'ok'
132
132
  end
133
133
  end
134
134
 
@@ -3,7 +3,7 @@
3
3
  module Riemann
4
4
  class Babbler
5
5
 
6
- def helper_error(msg = "Unknown helper error")
6
+ def helper_error(msg = 'Unknown helper error')
7
7
  report({
8
8
  :service => plugin.service,
9
9
  :state => 'critical',
@@ -20,10 +20,10 @@ module Riemann
20
20
  timeout_shell = ( plugin.interval * 2 ).to_f/3
21
21
  Timeout::timeout(timeout_shell) {
22
22
  Open3.popen3(*cmd) do |stdin, stdout, stderr, wait_thread|
23
- err = stderr.gets(nil)
24
- out = stdout.gets(nil)
23
+
24
+
25
25
  [stdin, stdout, stderr].each{|stream| stream.send('close')}
26
- exit_status = wait_thread.value
26
+
27
27
  end
28
28
  }
29
29
  rescue => e
@@ -36,19 +36,7 @@ module Riemann
36
36
  return out.chomp
37
37
  else
38
38
  # статус 0, вывода stdout нет
39
- return ""
40
- end
41
- end
42
-
43
- # db get
44
- # http://sequel.rubyforge.org/rdoc/files/doc/opening_databases_rdoc.html
45
- #
46
- def sql(connection_string, query)
47
- begin
48
- db = Sequel.connect connection_string
49
- db.fetch(query)
50
- rescue => e
51
- helper_error "#{e.class} #{e}\n#{e.backtrace.join "\n"}"
39
+ ''
52
40
  end
53
41
  end
54
42
 
@@ -18,7 +18,7 @@ class Riemann::Babbler::Cpu < Riemann::Babbler
18
18
  # проверяем есть строчка /cpu\d+/ или /cpu / и сграбливаем это в переменную
19
19
  cpu_number = cpu_line.scan(/cpu(\d+|\s)\s+/)
20
20
  next if cpu_number.empty?
21
- cpu_number = cpu_number[0][0] == " " ? "_total" : cpu_number[0][0]
21
+ cpu_number = cpu_number[0][0] == ' ' ? '_total' : cpu_number[0][0]
22
22
 
23
23
  # работаем со строкой
24
24
  cpu_line[/cpu(\d+|\s)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/]
@@ -5,14 +5,7 @@ class Riemann::Babbler::Disk < Riemann::Babbler
5
5
  require 'sys/filesystem'
6
6
  include Sys
7
7
 
8
- NOT_MONITORING_FS = [
9
- 'sysfs',
10
- 'nfs',
11
- 'devpts',
12
- 'squashfs',
13
- 'proc',
14
- 'devtmpfs'
15
- ]
8
+ NOT_MONITORING_FS = %w(sysfs nfs devpts squashfs proc devtmpfs)
16
9
 
17
10
  def collect
18
11
  # собираем только необходимые для мониторинга маунт-поинты
@@ -26,8 +19,8 @@ class Riemann::Babbler::Disk < Riemann::Babbler
26
19
  disk = Array.new
27
20
  monit_points.each do |point|
28
21
  point_stat = Filesystem.stat point
29
- human_point = point == "/" ? "/root" : point
30
- human_point = human_point.gsub(/^\//, "").gsub(/\//, "_")
22
+ human_point = point == '/' ? '/root' : point
23
+ human_point = human_point.gsub(/^\//, '').gsub(/\//, '_')
31
24
  disk << { :service => plugin.service + " #{human_point} % block", :description => "Disk usage #{point}, %", :metric => (1- point_stat.blocks_available.to_f/point_stat.blocks).round(2) * 100 }
32
25
  disk << { :service => plugin.service + " #{human_point} % inode", :description => "Disk usage #{point}, inodes %", :metric => (1 - point_stat.files_available.to_f/point_stat.files).round(2) * 100 }
33
26
  disk << { :service => plugin.service + " #{human_point} abs free", :description => "Disk free #{point}, B", :metric => point_stat.blocks_free * point_stat.block_size, :state => 'ok'}
@@ -3,7 +3,7 @@
3
3
  class Riemann::Babbler::La < Riemann::Babbler
4
4
 
5
5
  def collect
6
- { :service => plugin.service + " la_1", :description => "LA averaged over 1 minute", :metric => File.read('/proc/loadavg').split(/\s+/)[2].to_f }
6
+ { :service => plugin.service + ' la_1', :description => 'LA averaged over 1 minute', :metric => File.read('/proc/loadavg').split(/\s+/)[2].to_f }
7
7
  end
8
8
 
9
9
  end
@@ -20,14 +20,14 @@ class Riemann::Babbler::Memory < Riemann::Babbler
20
20
 
21
21
  desc = "#{shell('ps -eo pmem,pid,cmd --sort -pmem | head -10').chomp}"
22
22
  [
23
- { :service => plugin.service + " % free", :description => "Memory usage, %", :metric => fraction.round(2) * 100 },
24
- { :service => plugin.service + " % swap", :description => "Swap usage, %", :metric => swap_fraction.round(2) * 100 },
25
- { :service => plugin.service + " abs free", :description => "Memory free (kB)\n\n #{desc}", :metric => free, :state => 'ok' },
26
- { :service => plugin.service + " abs total", :description => "Memory total (kB)\n\n #{desc}", :metric => total, :state => 'ok' },
27
- { :service => plugin.service + " abs cached", :description => "Memory usage, cached (kB)\n\n #{desc}", :metric => cached, :state => 'ok' },
28
- { :service => plugin.service + " abs buffers", :description => "Memory usage, buffers (kB)\n\n #{desc}", :metric => buffers, :state => 'ok' },
29
- { :service => plugin.service + " abs used", :description => "Memory usage, used (kB)\n\n #{desc}", :metric => used , :state => 'ok' },
30
- { :service => plugin.service + " abs free_bc", :description => "Memory usage with cache и buffers (kB)\n\n #{desc}", :metric => free_bc , :state => 'ok' }
23
+ { :service => plugin.service + ' % free', :description => 'Memory usage, %', :metric => fraction.round(2) * 100 },
24
+ { :service => plugin.service + ' % swap', :description => 'Swap usage, %', :metric => swap_fraction.round(2) * 100 },
25
+ { :service => plugin.service + ' abs free', :description => "Memory free (kB)\n\n #{desc}", :metric => free, :state => 'ok' },
26
+ { :service => plugin.service + ' abs total', :description => "Memory total (kB)\n\n #{desc}", :metric => total, :state => 'ok' },
27
+ { :service => plugin.service + ' abs cached', :description => "Memory usage, cached (kB)\n\n #{desc}", :metric => cached, :state => 'ok' },
28
+ { :service => plugin.service + ' abs buffers', :description => "Memory usage, buffers (kB)\n\n #{desc}", :metric => buffers, :state => 'ok' },
29
+ { :service => plugin.service + ' abs used', :description => "Memory usage, used (kB)\n\n #{desc}", :metric => used , :state => 'ok' },
30
+ { :service => plugin.service + ' abs free_bc', :description => "Memory usage with cache и buffers (kB)\n\n #{desc}", :metric => free_bc , :state => 'ok' }
31
31
  ]
32
32
  end
33
33
 
@@ -20,8 +20,8 @@ class Riemann::Babbler::Net < Riemann::Babbler
20
20
  f = File.read('/proc/net/dev')
21
21
  status = Array.new
22
22
  f.split("\n").each do |line|
23
- iface = line.split(":")[0].strip
24
- iface.gsub!(/\./,"_")
23
+ iface = line.split(':')[0].strip
24
+ iface.gsub!(/\./, '_')
25
25
  next unless line =~ /(\w*)\:\s*([\s\d]+)\s*/
26
26
  WORDS.map do |service|
27
27
  "#{plugin.service} #{iface} #{service}"
@@ -1,5 +1,5 @@
1
1
  module Riemann
2
2
  class Babbler
3
- VERSION = '0.8.8'
3
+ VERSION = '0.8.9'
4
4
  end
5
5
  end
data/lib/start_helpers.rb CHANGED
@@ -3,15 +3,15 @@ require File.expand_path('../riemann/babbler/plugin', __FILE__)
3
3
 
4
4
  def set_logger_lvl(logger, configatron)
5
5
  case configatron.logger.level
6
- when "INFO"
6
+ when 'INFO'
7
7
  logger.level = Logger::INFO
8
- when "WARN"
8
+ when 'WARN'
9
9
  logger.level = Logger::WARN
10
- when "ERROR"
10
+ when 'ERROR'
11
11
  logger.level = Logger::ERROR
12
- when "FATAL"
12
+ when 'FATAL'
13
13
  logger.level = Logger::FATAL
14
- when "UNKNOWN"
14
+ when 'UNKNOWN'
15
15
  logger.level = Logger::UNKNOWN
16
16
  else
17
17
  logger.level = Logger::DEBUG
@@ -37,14 +37,14 @@ end
37
37
  def load_plugins(configatron)
38
38
  plugins = Array.new
39
39
  default_plugins_dir = File.expand_path('../riemann/babbler/plugins/', __FILE__)
40
- Dir.glob( default_plugins_dir + "/*.rb" ) do |file|
40
+ Dir.glob( default_plugins_dir + '/*.rb') do |file|
41
41
  plugins << file
42
42
  end
43
43
 
44
44
  unless configatron.plugins.dirs.nil?
45
45
  configatron.plugins.dirs.each do |dir|
46
46
  next unless Dir.exist? dir
47
- Dir.glob( dir + "/*.rb" ) do |file|
47
+ Dir.glob( dir + '/*.rb') do |file|
48
48
  plugins << file
49
49
  end
50
50
  end
@@ -87,7 +87,7 @@ end
87
87
  def start_plugins(registered_plugins, riemann, logger, configatron)
88
88
  run_only = Array.new
89
89
  configatron.plugins.to_hash.keys.each { |key| run_only << key.to_s }
90
- registered_plugins.delete_if {|plugin| ! run_only.include? plugin.to_s.split("::").last.downcase }
90
+ registered_plugins.delete_if {|plugin| ! run_only.include? plugin.to_s.split('::').last.downcase }
91
91
 
92
92
  plugin_threads = registered_plugins.map do |plugin|
93
93
  Thread.new {
@@ -96,7 +96,7 @@ def start_plugins(registered_plugins, riemann, logger, configatron)
96
96
  end
97
97
 
98
98
  # plugin control
99
- Signal.trap "TERM" do
99
+ Signal.trap 'TERM' do
100
100
  plugin_threads.each( &:kill )
101
101
  end
102
102
 
@@ -2,13 +2,13 @@
2
2
  require File.expand_path('../lib/riemann/version', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
- s.name = "riemann-babbler"
5
+ s.name = 'riemann-babbler'
6
6
  s.version = Riemann::Babbler::VERSION
7
- s.authors = ["Vasiliev D.V."]
7
+ s.authors = ['Vasiliev D.V.']
8
8
  s.email = %w(vadv.mkn@gmail.com)
9
- s.homepage = "https://github.com/vadv/riemann-babbler"
10
- s.summary = %q{Riemann health cheker.}
11
- s.description = %q{Some plugins mannager for riemann.}
9
+ s.homepage = 'https://github.com/vadv/riemann-babbler'
10
+ s.summary = %q{Riemann health checker.}
11
+ s.description = %q{Some plugins manager for riemann.}
12
12
  s.licenses = %w(MIT)
13
13
 
14
14
  s.add_dependency('riemann-client')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riemann-babbler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.8
4
+ version: 0.8.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-24 00:00:00.000000000 Z
12
+ date: 2013-05-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: riemann-client
@@ -123,7 +123,7 @@ dependencies:
123
123
  - - ! '>='
124
124
  - !ruby/object:Gem::Version
125
125
  version: '0'
126
- description: Some plugins mannager for riemann.
126
+ description: Some plugins manager for riemann.
127
127
  email:
128
128
  - vadv.mkn@gmail.com
129
129
  executables:
@@ -165,7 +165,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
165
165
  version: '0'
166
166
  segments:
167
167
  - 0
168
- hash: -1309778898422144430
168
+ hash: -3301891544373648721
169
169
  required_rubygems_version: !ruby/object:Gem::Requirement
170
170
  none: false
171
171
  requirements:
@@ -177,5 +177,5 @@ rubyforge_project:
177
177
  rubygems_version: 1.8.25
178
178
  signing_key:
179
179
  specification_version: 3
180
- summary: Riemann health cheker.
180
+ summary: Riemann health checker.
181
181
  test_files: []