riemann-mongodb 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MzA2N2VlOGY1YTg0ZTA3NmU5ODFjOTk2NTAxN2UzNDZiMGRmNTY0Zg==
4
+ NjZlZDY0YWM3M2RhN2U4YjVhNTY5ODZkZjA3MGEyYWNjMWI0MGYzNg==
5
5
  data.tar.gz: !binary |-
6
- ZWM4YzdjZmM5YjZlNTMxYjE3MTU4ZTdiYTc5NWMxMzQ2ZWI5ZjJjNw==
6
+ ZDgxMDQ4OTIzMjFjMjI2M2EyZDMxMjA1Mjk2MTY0ZDAzYzAyNThjOQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YTgwOGVjNzc4ZDk0ZmRlZGI2MjM0NzBiNWJmMTY4NzNhZjUzNTUyMzM1NmU3
10
- M2Q4NmEzZDkwNzZkNWRmNGQ2OGEzYjE4MmExNTM0M2Y2MjczYTZiOTk1OWEy
11
- ZmYyMmRiYzQ4ZDIwMWJlMDI0ZWJjNDM4ODliMzdkYmQ3Y2YzZjY=
9
+ ZDc0YWNlOWM2NDYzZTg1YmU0ZmJlZTVjYmM5NjhlMWNjZTU0MWRiZTJmYzE4
10
+ NDM4YmQwZTJhZWQ1NzUwYWQ3ZjVkY2VjZTg2ZmFhMGI1YjU1YWYwMzM2ZDM4
11
+ YjQzNzk1ZDU1ZTU4NTA3ZDRjYTkxNWJlNTUzODM5ZmE3NDg1NDI=
12
12
  data.tar.gz: !binary |-
13
- MTIyMWFkYzA4MmQyNzQ2M2Q1NTZmOTJmNDFhYWExMTM0YWY1YTVmOWQyYTI1
14
- NzZmZThiYTc3NTg5ZTRjODczYzk1YjlmNTA5YmZjMzE2ZmY1YmU4NDJlYWFk
15
- MjM5MTBlZDllNGI1MzEzMjIyMmQ3ODhjODY1ZTY1NDRmMzVhYmM=
13
+ NGYwYmI1NmFlN2I4MGFiMDJhNjY5ZTBhN2EwNjkzZWQ4NTIyYmE5ZGM4NzVj
14
+ NTQwOTU5Zjg0MTFmMWRhMzMwNzViZjAwNzdmZDAyMWRlZjYzZWZiZjBjYzVi
15
+ NWQ1YTYzODBiZmViNzZmYzdlZDcyYjUzMjcwNDU0M2UwOWUzM2I=
data/README.md CHANGED
@@ -1,9 +1,12 @@
1
- Riemann MongoDB
1
+ Riemann mongodb
2
2
  =============
3
3
 
4
4
  Simple mongodb riemann client.
5
5
 
6
- Submits the result of db.stats() query into riemann.
6
+
7
+ A client which submits the result of db.stats() query into riemann.
8
+ A second client to monitor replication set status, using rs.status() query.
9
+
7
10
 
8
11
  Get started
9
12
  ==========
@@ -11,4 +14,5 @@ Get started
11
14
  ``` bash
12
15
  gem install riemann-mongodb
13
16
  riemann-mongodb --help
17
+ riemann-mongodb-rs-status --help
14
18
  ```
data/bin/riemann-mongodb CHANGED
@@ -10,7 +10,7 @@ class Riemann::Tools::Mongo
10
10
 
11
11
  opt :mongo_host, "Mongo hostname", :default => 'localhost'
12
12
  opt :mongo_port, "Mongo port", :default => 27017
13
- opt :mongo_db, "Mongo database", :default => ''
13
+ opt :mongo_db, "Mongo database", :default => 'local'
14
14
 
15
15
  def initialize
16
16
  @db = ::Mongo::MongoClient.new(opts[:mongo_host], opts[:mongo_port]).db(opts[:mongo_db])
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- # Gathers MongoDB db.stats() and submits them to Riemann.
3
+ # Gathers MongoDB replSetGetStatus command output (rs.status() from the shell) and submits them to Riemann.
4
4
 
5
5
  require 'riemann/tools'
6
6
 
@@ -20,21 +20,37 @@ class Riemann::Tools::Mongo
20
20
 
21
21
  def tick
22
22
  begin
23
- @db.command(@cmd)["members"].each do |member|
24
- member.each do |property, value|
25
- data = {
26
- :host => opts[:host_prefix] + member["name"],
27
- :service => "mongodb #{property}",
28
- :metric => value.to_s,
29
- :state => value.to_s,
30
- :tags => ['mongodb']
31
- }
32
-
33
- report(data)
34
- end
35
- end
23
+ response = @db.command(@cmd)
24
+ rescue => e
25
+ report(
26
+ :host => opts[:host_prefix] + opts[:mongo_host].dup,
27
+ :service => "mongodb health",
28
+ :description => "Connection error: #{e.class} - #{e.message}"
29
+ )
36
30
  end
37
31
 
32
+ return if response.nil?
33
+
34
+ report(
35
+ :host => opts[:host_prefix] + opts[:mongo_host].dup,
36
+ :service => "mongodb health",
37
+ :state => "ok",
38
+ :description => "mongodb connection status ok"
39
+ )
40
+
41
+ response["members"].each do |member|
42
+ member.each do |property, value|
43
+ data = {
44
+ :host => opts[:host_prefix] + opts[:mongo_host].dup,
45
+ :service => "mongodb #{property}",
46
+ :metric => value.to_s,
47
+ :state => value.to_s,
48
+ :tags => ['mongodb']
49
+ }
50
+
51
+ report(data)
52
+ end
53
+ end
38
54
  end
39
55
 
40
56
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riemann-mongodb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fede Borgnia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-22 00:00:00.000000000 Z
11
+ date: 2014-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: riemann-tools