check_graphite 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7313494817c203061b8c0e7627d477f7b3bf3f91
4
- data.tar.gz: 13d5de392c193c0d646dc60b96f8b6c52a402d7b
3
+ metadata.gz: 005e6702df11c50c976336ec6be597223b58ce83
4
+ data.tar.gz: 0854e7caea66b0b5a9cca85007a7161b09fcdf35
5
5
  SHA512:
6
- metadata.gz: 29a569254d2894eb67691e8afdf703b67d336de22847de90fdf2ee6a1a38746495252559da63bb86eddc18d3b50b2af4cd2819702b330f99b9ed4f40be442b9e
7
- data.tar.gz: 2ff72eb649135308850acff80194dffb4cd0a0df7c0245c1cdc28dd2abae31965def2577f31ea78bb568a7f8998f7ebc314c3829665fbf0b3c66b888d6e64b81
6
+ metadata.gz: 07bbf563737fc2012ce3beeaa5b096e923eae62904ec39f4cb0f6cbac2e5c4d352e2a884163370c00ab5b120bcb905b63ba7ebf0c089a6c280232e6bb25a3e20
7
+ data.tar.gz: 890ddc5b1662aa1f841c2e7c6a158be55572a8f35de36295d9b9504cda53fc1364cabcd05394ace29e8a7c567c41f82d7fc4d7fb2283bc98af71d9e8eb639840
data/.gitignore CHANGED
@@ -2,3 +2,4 @@
2
2
  .bundle
3
3
  Gemfile.lock
4
4
  pkg/*
5
+ .*.s??
@@ -2,3 +2,5 @@ language: ruby
2
2
  rvm:
3
3
  - 1.9.2
4
4
  - 1.9.3
5
+ - 2.1.6
6
+ - 2.2.2
data/README.md CHANGED
@@ -22,6 +22,7 @@ check_graphite accepts the following options:
22
22
  * `-w`: warning threshold for the metric
23
23
  * `-c`: critical threshold for the metric
24
24
  * `-t`: timeout after which the metric should be considered unknown
25
+ * `--ignore-missing`: return `OK` when the metric doesn't exist yet e.g. errors have not occurred
25
26
 
26
27
  ## How it works
27
28
 
@@ -16,6 +16,9 @@ module CheckGraphite
16
16
  on "--password PASSWORD", "-P PASSWORD"
17
17
  on "--dropfirst N", "-A N", Integer, :default => 0
18
18
  on "--droplast N", "-Z N", Integer, :default => 0
19
+ on "-I", "--ignore-missing", :default => false do
20
+ options.send("ignore-missing=", true)
21
+ end
19
22
 
20
23
  enable_warning
21
24
  enable_critical
@@ -35,7 +38,15 @@ module CheckGraphite
35
38
  }
36
39
 
37
40
  raise "HTTP error code #{res.code}" unless res.code == "200"
38
- raise "no data returned for target" if res.body == "[]"
41
+ if res.body == "[]"
42
+ if options.send("ignore-missing")
43
+ store_value options.name, -1
44
+ store_message "#{options.name} missing - ignoring"
45
+ return
46
+ else
47
+ raise "no data returned for target"
48
+ end
49
+ end
39
50
 
40
51
  datapoints = JSON(res.body).map { |e| e["datapoints"] }.reduce { |a, b| a + b }
41
52
  datapoints = datapoints.slice(
@@ -1,3 +1,3 @@
1
1
  module CheckGraphite
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.4"
3
3
  end
@@ -16,42 +16,42 @@ describe CheckGraphite::Command do
16
16
  end
17
17
 
18
18
  it "should return OK" do
19
- ARGV = %w{ -H http://your.graphite.host/render -M collectd.somebox.load.load.midterm }
19
+ stub_const("ARGV", %w{ -H http://your.graphite.host/render -M collectd.somebox.load.load.midterm })
20
20
  c = CheckGraphite::Command.new
21
21
  STDOUT.should_receive(:puts).with("OK: value=4.0|value=4.0;;;;")
22
22
  lambda { c.run }.should raise_error SystemExit
23
23
  end
24
24
 
25
25
  it "should return WARNING" do
26
- ARGV = %w{ -H http://your.graphite.host/render -M collectd.somebox.load.load.midterm -w 0 }
26
+ stub_const("ARGV", %w{ -H http://your.graphite.host/render -M collectd.somebox.load.load.midterm -w 0 })
27
27
  c = CheckGraphite::Command.new
28
28
  STDOUT.should_receive(:puts).with("WARNING: value=4.0|value=4.0;;;;")
29
29
  lambda { c.run }.should raise_error SystemExit
30
30
  end
31
31
 
32
32
  it "should return CRITICAL" do
33
- ARGV = %w{ -H http://your.graphite.host/render -M collectd.somebox.load.load.midterm -c 0 }
33
+ stub_const("ARGV", %w{ -H http://your.graphite.host/render -M collectd.somebox.load.load.midterm -c 0 })
34
34
  c = CheckGraphite::Command.new
35
35
  STDOUT.should_receive(:puts).with("CRITICAL: value=4.0|value=4.0;;;;")
36
36
  lambda { c.run }.should raise_error SystemExit
37
37
  end
38
38
 
39
39
  it "should honour dropfirst" do
40
- ARGV = %w{ -H http://your.graphite.host/render -M collectd.somebox.load.load.midterm --dropfirst 1 }
40
+ stub_const("ARGV", %w{ -H http://your.graphite.host/render -M collectd.somebox.load.load.midterm --dropfirst 1 })
41
41
  c = CheckGraphite::Command.new
42
42
  STDOUT.should_receive(:puts).with("OK: value=5.0|value=5.0;;;;")
43
43
  lambda { c.run }.should raise_error SystemExit
44
44
  end
45
45
 
46
46
  it "should honour droplast" do
47
- ARGV = %w{ -H http://your.graphite.host/render -M collectd.somebox.load.load.midterm --droplast 1 }
47
+ stub_const("ARGV", %w{ -H http://your.graphite.host/render -M collectd.somebox.load.load.midterm --droplast 1 })
48
48
  c = CheckGraphite::Command.new
49
49
  STDOUT.should_receive(:puts).with("OK: value=3.0|value=3.0;;;;")
50
50
  lambda { c.run }.should raise_error SystemExit
51
51
  end
52
52
 
53
53
  it "should honour dropfirst and droplast together" do
54
- ARGV = %w{ -H http://your.graphite.host/render -M collectd.somebox.load.load.midterm --dropfirst 1 --droplast 1 }
54
+ stub_const("ARGV", %w{ -H http://your.graphite.host/render -M collectd.somebox.load.load.midterm --dropfirst 1 --droplast 1 })
55
55
  c = CheckGraphite::Command.new
56
56
  STDOUT.should_receive(:puts).with("OK: value=4.0|value=4.0;;;;")
57
57
  lambda { c.run }.should raise_error SystemExit
@@ -66,7 +66,7 @@ describe CheckGraphite::Command do
66
66
  end
67
67
 
68
68
  it "should discard them" do
69
- ARGV = %w{ -H http://your.graphite.host/render -M collectd.somebox.load.load.midterm }
69
+ stub_const("ARGV", %w{ -H http://your.graphite.host/render -M collectd.somebox.load.load.midterm })
70
70
  c = CheckGraphite::Command.new
71
71
  STDOUT.should_receive(:puts).with("OK: value=2.0|value=2.0;;;;")
72
72
  lambda { c.run }.should raise_error SystemExit
@@ -81,11 +81,18 @@ describe CheckGraphite::Command do
81
81
  end
82
82
 
83
83
  it "should be unknown" do
84
- ARGV = %w{ -H http://your.graphite.host/render -M value.does.not.exist }
84
+ stub_const("ARGV", %w{ -H http://your.graphite.host/render -M value.does.not.exist })
85
85
  c = CheckGraphite::Command.new
86
86
  STDOUT.should_receive(:puts).with(/UNKNOWN: INTERNAL ERROR: (RuntimeError: )?no data returned for target/)
87
87
  lambda { c.run }.should raise_error SystemExit
88
88
  end
89
+
90
+ it "should be ok when ignoring missing data" do
91
+ stub_const("ARGV", %w{ -H http://your.graphite.host/render -M value.does.not.exist --ignore-missing })
92
+ c = CheckGraphite::Command.new
93
+ STDOUT.should_receive(:puts).with(/OK: value missing - ignoring/)
94
+ lambda { c.run }.should raise_error SystemExit
95
+ end
89
96
  end
90
97
 
91
98
  describe "when Graphite returns only NULL values" do
@@ -96,7 +103,7 @@ describe CheckGraphite::Command do
96
103
  end
97
104
 
98
105
  it "should be unknown" do
99
- ARGV = %w{ -H http://your.graphite.host/render -M all.values.null }
106
+ stub_const("ARGV", %w{ -H http://your.graphite.host/render -M all.values.null })
100
107
  c = CheckGraphite::Command.new
101
108
  STDOUT.should_receive(:puts).with(/UNKNOWN: INTERNAL ERROR: (RuntimeError: )?no valid datapoints/)
102
109
  lambda { c.run }.should raise_error SystemExit
@@ -111,7 +118,7 @@ describe CheckGraphite::Command do
111
118
  end
112
119
 
113
120
  it "should return OK" do
114
- ARGV = %w{ -H http://your.graphite.host/render -M collectd.somebox*.load.load.midterm }
121
+ stub_const("ARGV", %w{ -H http://your.graphite.host/render -M collectd.somebox*.load.load.midterm })
115
122
  c = CheckGraphite::Command.new
116
123
  STDOUT.should_receive(:puts).with("OK: value=4.0|value=4.0;;;;")
117
124
  lambda { c.run }.should raise_error SystemExit
@@ -129,14 +136,14 @@ describe CheckGraphite::Command do
129
136
  end
130
137
 
131
138
  it "should work with valid username and password" do
132
- ARGV = %w{ -H http://your.graphite.host/render -M collectd.somebox.load.load.midterm -U testuser -P testpass}
139
+ stub_const("ARGV", %w{ -H http://your.graphite.host/render -M collectd.somebox.load.load.midterm -U testuser -P testpass})
133
140
  c = CheckGraphite::Command.new
134
141
  STDOUT.should_receive(:puts).with("OK: value=2.0|value=2.0;;;;")
135
142
  lambda { c.run }.should raise_error SystemExit
136
143
  end
137
144
 
138
145
  it "should fail with bad username and password" do
139
- ARGV = %w{ -H http://your.graphite.host/render -M collectd.somebox.load.load.midterm -U baduser -P badpass }
146
+ stub_const("ARGV", %w{ -H http://your.graphite.host/render -M collectd.somebox.load.load.midterm -U baduser -P badpass })
140
147
  c = CheckGraphite::Command.new
141
148
  STDOUT.should_receive(:puts).with(/UNKNOWN: INTERNAL ERROR: (RuntimeError: )?HTTP error code 401/)
142
149
  lambda { c.run }.should raise_error SystemExit
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: check_graphite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pierre-Yves Ritschard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-29 00:00:00.000000000 Z
11
+ date: 2015-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nagios_check
@@ -103,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
103
  version: '0'
104
104
  requirements: []
105
105
  rubyforge_project: check_graphite
106
- rubygems_version: 2.2.2
106
+ rubygems_version: 2.4.5
107
107
  signing_key:
108
108
  specification_version: 4
109
109
  summary: check_graphite