riemann-smith 0.2.1 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/riemann-smith +15 -16
  3. metadata +3 -31
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ddabc131163b71844a1d0252bd9f5eecf18e06c0
4
- data.tar.gz: 6f9b585f1491efdfe0d4f766893451506842ae12
3
+ metadata.gz: 599a249192095c3c61053316cb92d3768a1d49df
4
+ data.tar.gz: 6daf55d263d32f3f222a6d397e9ab7155ed45e0c
5
5
  SHA512:
6
- metadata.gz: ac33d63cb456c2a4a22e9ce616e04e4551f58220d9c7c6f4b79e386e06fa64c1fa443181abc860b81b7b5e99411192ecd061b37a859fd2df2a4adb75545aaa37
7
- data.tar.gz: 49a96af674fc7fa8133abd16477d7c8c37bf11e4edaf18df7447382178472ef721d0448550bd6eb6849a26a09804de8de8404c6d74f69e9721eacdc5cef39174
6
+ metadata.gz: 3e7049aa2f7d3c41240ff7c482aaff2515ee4611d6666a813f0f9ab2ef56c2bd26af15eb4d5bbacf006fb220b3f68da723c6452b7dc34adf3915a966664d978a
7
+ data.tar.gz: 53bbeea669d614a7eede325e48fe923272f58c74ffb9c4427517b1c24847616d7b2324488bea931dafb035a0dc4b2e489cfbe682fa5e97a42bcdc71cbe8dd479
data/bin/riemann-smith CHANGED
@@ -22,8 +22,6 @@ class Smith::Riemann
22
22
  options[:agents].uniq!
23
23
  end
24
24
 
25
- @reply_queue = "riemann.#{Digest::SHA1.hexdigest(Time.now.to_s + $$.to_s)}"
26
-
27
25
  Smith.compile_acls
28
26
  end
29
27
 
@@ -41,11 +39,15 @@ class Smith::Riemann
41
39
  return
42
40
  end
43
41
 
44
- queue.on_reply(:auto_ack => true, :reply_queue_name => @reply_queue) do |reply_payload, r|
42
+ # TODO remove this when smith randomises the reply queue name (probably > 0.7.2).
43
+ reply_queue = "riemann.#{Digest::SHA1.hexdigest(Time.now.to_s + $$.to_s)}"
44
+
45
+ queue.on_reply(:auto_ack => true, :reply_queue_name => reply_queue) do |reply_payload, r|
45
46
  results = parse_response(reply_payload.response)
46
47
 
47
48
  options[:agents].each do |agent|
48
- if results.has_key?(agent) and Sys::ProcTable.ps(results[agent][:pid].to_i)
49
+ if results.has_key?(agent) && results[agent].any? { |a| a[:state] == "running" && Sys::ProcTable.ps(a[:pid].to_i) }
50
+ $stderr.puts "#{agent}: ok"
49
51
  report(
50
52
  :host => options[:event_host],
51
53
  :service => "#{options[:service_name]}.#{agent}",
@@ -53,6 +55,7 @@ class Smith::Riemann
53
55
  :description => "Agent is running"
54
56
  )
55
57
  else
58
+ $stderr.puts "#{agent}: critical"
56
59
  report(
57
60
  :host => options[:event_host],
58
61
  :service => "#{options[:service_name]}.#{agent}",
@@ -87,18 +90,14 @@ class Smith::Riemann
87
90
 
88
91
  # Returns a Nested hash representing the running agents.
89
92
  def parse_response(response)
90
- split_response = response.split(/\n/)
91
- ((/^total/.match(split_response.first)) ? split_response[1..-1] : []).inject({}) do |a, entry|
92
- a.tap do |acc|
93
- fields = entry.split(/ +/).map(&:strip)
94
- acc[fields.last] = {}.tap do |res|
95
- res[:given_state] = fields[0]
96
- res[:uuid] = fields[1]
97
- res[:pid] = fields[2]
98
- res[:date] = fields[3]
99
- res[:description] = fields.last
100
- end
101
- end
93
+ split_response = response.split(/\n/).map(&:strip)
94
+ ((/^total/.match(split_response.first)) ? split_response[1..-1] : []).each_with_object(Hash.new { |h,k| h[k] = []}) do |entry, h|
95
+ fields = entry.split(/\s +/)
96
+ h[fields.last] << {
97
+ :state => fields[0],
98
+ :uuid => fields[1],
99
+ :pid => fields[2]
100
+ }
102
101
  end
103
102
  end
104
103
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riemann-smith
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Heycock
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-19 00:00:00.000000000 Z
11
+ date: 2015-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: git-version-bump
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '0.10'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '0.10'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: riemann-tools
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -108,20 +94,6 @@ dependencies:
108
94
  - - ">="
109
95
  - !ruby/object:Gem::Version
110
96
  version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: github-release
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
97
  description:
126
98
  email: rgh@digivizer.com
127
99
  executables:
@@ -154,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
154
126
  version: '0'
155
127
  requirements: []
156
128
  rubyforge_project:
157
- rubygems_version: 2.2.2
129
+ rubygems_version: 2.4.5
158
130
  signing_key:
159
131
  specification_version: 4
160
132
  summary: Monitor smith agents, reporting to Riemann