riemann-babbler 0.1.2 → 0.1.3

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/Gemfile CHANGED
@@ -5,6 +5,7 @@ gem "configatron"
5
5
  gem "logger"
6
6
  gem "trollop"
7
7
  gem "parallel"
8
+ gem "sys-filesystem"
8
9
 
9
10
  gem "rspec"
10
11
  gem "rake"
data/README.md CHANGED
@@ -11,13 +11,13 @@ Riemann-babbler is plugin manager for riemann-tools.
11
11
  Usage:
12
12
  riemann-babbler [options]
13
13
  where [options] are:
14
- --config, -c <s>: Config file (default: /etc/riemann-babbler/config.yml)
14
+ --config, -c: Config file (default: /etc/riemann-babbler/config.yml)
15
15
  --version, -v: Print version and exit
16
16
  --help, -h: Show this message
17
17
  ```
18
18
 
19
19
  ### Описание конфига
20
- Bubbler имеет собственные конифиги, значения полученные через --config будут смерджены
20
+ Bubbler имеет собственные конфиг, значения полученные через --config будут смерджены
21
21
  ```yaml
22
22
  riemann:
23
23
  host: riemann.host # хост riemann куда слать сообщения
@@ -25,7 +25,7 @@ riemann:
25
25
  tags: # таги которые будут сообшатся
26
26
  - prod
27
27
  - web
28
- suffix: ".testing" # окончание `hostname` в граффите как начало
28
+ suffix: ".testing" # окончание `hostname` в графите как начало
29
29
 
30
30
  plugins:
31
31
  dirs:
@@ -1,19 +1,35 @@
1
1
  class Riemann::Babbler::Disk
2
2
  include Riemann::Babbler
3
3
 
4
+ require 'sys/filesystem'
5
+ include Sys
6
+
7
+ NOT_MONITORING_FS = [
8
+ 'sysfs',
9
+ 'nfs',
10
+ 'devpts',
11
+ 'squashfs',
12
+ 'proc'
13
+ ]
14
+
4
15
  def plugin
5
16
  options.plugins.disk
6
17
  end
7
18
 
8
19
  def disk
9
- disk = {}
10
- `df -P`.split(/\n/).each do |r|
11
- f = r.split(/\s+/)
12
- next unless f[0] =~ /^\//
13
- next if f[0] == 'Filesystem'
14
- x = f[4].to_f/100
15
- point = (f[5] == '/' ? "/root" : f[5] )
16
- disk.merge!({point => x})
20
+ # собираем только необходимые для мониторинга маунт-поинты
21
+ # точнее выбираем из mounts только те, у которых fstype не попадает
22
+ # в NOT_MONITORING_FS
23
+ monit_points = []
24
+ File.read('/proc/mounts').split("\n").each do |line|
25
+ mtab = line.split(/\s+/)
26
+ monit_points << mtab[1] unless NOT_MONITORING_FS.include? mtab[2]
27
+ end
28
+ disk = Hash.new
29
+ monit_points.each do |point|
30
+ point_stat = Filesystem.stat point
31
+ disk.merge!({point + " storage" => (point_stat.blocks_free/point_stat.blocks_available)})
32
+ disk.merge!({point + " inode" => (point_stat.files_free/point_stat.files_available)})
17
33
  end
18
34
  disk
19
35
  end
@@ -2,25 +2,30 @@ class Riemann::Babbler::Net
2
2
  include Riemann::Babbler
3
3
 
4
4
  WORDS = ['rx bytes',
5
- 'rx packets',
6
- 'rx errs',
7
- 'rx drop',
8
- 'rx fifo',
9
- 'rx frame',
10
- 'rx compressed',
11
- 'rx multicast',
12
- 'tx bytes',
13
- 'tx packets',
14
- 'tx drops',
15
- 'tx fifo',
16
- 'tx colls',
17
- 'tx carrier',
18
- 'tx compressed']
5
+ 'rx packets',
6
+ 'rx errs',
7
+ 'rx drop',
8
+ 'rx fifo',
9
+ 'rx frame',
10
+ 'rx compressed',
11
+ 'rx multicast',
12
+ 'tx bytes',
13
+ 'tx packets',
14
+ 'tx drops',
15
+ 'tx fifo',
16
+ 'tx colls',
17
+ 'tx carrier',
18
+ 'tx compressed']
19
19
 
20
20
  def plugin
21
21
  options.plugins.net
22
22
  end
23
23
 
24
+ def init
25
+ @diff = Hash.new
26
+ @old_status = Hash.new
27
+ end
28
+
24
29
  def net
25
30
  f = File.read('/proc/net/dev')
26
31
  status = Hash.new
@@ -36,16 +41,18 @@ class Riemann::Babbler::Net
36
41
  end
37
42
  end
38
43
  end
39
- return status
44
+ status.each_key { |key| @diff[key] = status[key] - @old_status[key] } if @old_status
45
+ @old_status = status
46
+ @diff
40
47
  end
41
48
 
42
49
  def tick
43
50
  net.each do |service, value|
44
- report({
45
- :service => service,
46
- :metric => value
47
- })
48
- end
51
+ report({
52
+ :service => service,
53
+ :metric => value
54
+ })
55
+ end unless net.nil?
49
56
  end
50
57
 
51
58
  end
@@ -1,5 +1,5 @@
1
1
  module Riemann
2
2
  module Babbler
3
- VERSION = '0.1.2'
3
+ VERSION = '0.1.3'
4
4
  end
5
5
  end
@@ -15,7 +15,8 @@ Gem::Specification.new do |s|
15
15
  s.add_dependency('configatron')
16
16
  s.add_dependency('logger')
17
17
  s.add_dependency('trollop')
18
- s.add_dependency('parallel')
18
+ s.add_dependency('parallel')
19
+ s.add_dependency('sys-filesystem')
19
20
 
20
21
  s.files = `git ls-files`.split("\n")
21
22
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
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.1.2
4
+ version: 0.1.3
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-05 00:00:00.000000000 Z
12
+ date: 2013-04-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: riemann-client
@@ -91,6 +91,22 @@ dependencies:
91
91
  - - ! '>='
92
92
  - !ruby/object:Gem::Version
93
93
  version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: sys-filesystem
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
94
110
  description: Some plugins mannager for riemann.
95
111
  email:
96
112
  - vadv.mkn@gmail.com
@@ -129,9 +145,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
129
145
  - - ! '>='
130
146
  - !ruby/object:Gem::Version
131
147
  version: '0'
132
- segments:
133
- - 0
134
- hash: 879882508046739386
135
148
  required_rubygems_version: !ruby/object:Gem::Requirement
136
149
  none: false
137
150
  requirements:
@@ -145,3 +158,4 @@ signing_key:
145
158
  specification_version: 3
146
159
  summary: Riemann health cheker.
147
160
  test_files: []
161
+ has_rdoc: