check_graphite 0.2.3 → 0.2.4

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.
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