sensu-plugins-influxdb-q 0.0.5 → 0.0.6

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: e6b5da9f248b5432ea5fb9f30966302969cac98f
4
- data.tar.gz: 0f1be2928fb827a91d75756aa849a4aca8838286
3
+ metadata.gz: aa4effaf4b971f17d0624a2ad4283e1ca4648ae3
4
+ data.tar.gz: 47ae909be1bf11062607eb23f9abff7756731884
5
5
  SHA512:
6
- metadata.gz: f902b27a27d42352afda39341b342583ef421ac4e54b38dfe9c7f9c15b62139f43345562988cf4ea1eb1455578f018692dd3a1c398ae6b4eeb1ff7df97f6a16f
7
- data.tar.gz: 4f71cb80f64a3db72af54f5425972f3545a34cc15e536bcd1e7889d9e4d2bc6ae567f0ca8765a897085241bebd9d93dc735142071a36f44331392447e69f54ce
6
+ metadata.gz: fab571e87cc6f69abc25dc221de8f87d8da88a7e15ceb6a7e36764bae322e62a9ab966b85c71f10653844ef15b39ff7639adf826e7eaef63a04931ae3267f393
7
+ data.tar.gz: 4beb7592325166c1b051eb36d7f1b05af52753e1c04e4286818abce3428059bf319db6a372d29e9846fb7548a3af0319562f1493f9f244f35088257b6614c67e
data/CHANGELOG.md CHANGED
@@ -3,7 +3,9 @@ This project adheres to [Semantic Versioning](http://semver.org/).
3
3
 
4
4
  This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachangelog.com/)
5
5
 
6
- ## Unreleased
6
+ ## [0.0.6] - 2016-01-18
7
+ ### Added
8
+ - Added query timeout option
7
9
 
8
10
  ## [0.0.5] - 2016-01-14
9
11
  ### Added
@@ -24,3 +26,5 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
24
26
  ## [0.0.1] - 2016-01-07
25
27
  ### Added
26
28
  - Initial release
29
+
30
+ ## Unreleased
@@ -14,6 +14,7 @@ require 'sensu-plugin/check/cli'
14
14
  require 'influxdb'
15
15
  require 'jsonpath'
16
16
  require 'dentaku'
17
+ require 'timeout'
17
18
 
18
19
  class Hash
19
20
  def symbolize_recursive
@@ -80,6 +81,12 @@ class CheckInfluxDbQ < Sensu::Plugin::Check::CLI
80
81
  :default => false,
81
82
  :boolean => true
82
83
 
84
+ option :timeout,
85
+ :description => "InfluxDB query timeout (default: 3)",
86
+ :long => "--timeout <SECONDS>",
87
+ :proc => proc { |i| i.to_i },
88
+ :default => 3
89
+
83
90
  option :host_field,
84
91
  :description => "InfluxDB measurement host field (default: host)",
85
92
  :long => "--host-field <FIELD>",
@@ -197,35 +204,42 @@ class CheckInfluxDbQ < Sensu::Plugin::Check::CLI
197
204
  @clients.each do |client|
198
205
  query = config[:query].gsub(" WHERE ", " WHERE #{config[:host_field]} = '#{client}' AND ")
199
206
  begin
200
- records = @influxdb.query(query)
201
- records.each do |record|
202
- if @json_path
203
- value = @json_path.on(record).first
204
-
205
- record_s = record.symbolize_recursive
206
- check_name = "influxdb-q-#{interpolate(config[:check_name], record_s)}"
207
- msg = interpolate(config[:msg], record_s)
208
-
209
- if value != nil
210
- if config[:crit] and @calculator.evaluate(config[:crit], value: value)
211
- send_critical(check_name, client, "#{msg} - Value: #{value} (#{config[:crit]})")
212
- elsif config[:warn] and @calculator.evaluate(config[:warn], value: value)
213
- send_warning(check_name, client, "#{msg} - Value: #{value} (#{config[:warn]})")
207
+ timeout(config[:timeout) do
208
+ begin
209
+ records = @influxdb.query(query)
210
+ records.each do |record|
211
+ if @json_path
212
+ value = @json_path.on(record).first
213
+
214
+ record_s = record.symbolize_recursive
215
+ check_name = "influxdb-q-#{interpolate(config[:check_name], record_s)}"
216
+ msg = interpolate(config[:msg], record_s)
217
+
218
+ if value != nil
219
+ if config[:crit] and @calculator.evaluate(config[:crit], value: value)
220
+ send_critical(check_name, client, "#{msg} - Value: #{value} (#{config[:crit]})")
221
+ elsif config[:warn] and @calculator.evaluate(config[:warn], value: value)
222
+ send_warning(check_name, client, "#{msg} - Value: #{value} (#{config[:warn]})")
223
+ else
224
+ send_ok(check_name, client, "#{msg} - Value: #{value}")
225
+ end
226
+ else
227
+ send_unknown(check_name, client, "#{msg} - Value: N/A")
228
+ end
214
229
  else
215
- send_ok(check_name, client, "#{msg} - Value: #{value}")
230
+ puts "InfluxDB query [#{query}] held the following result (use --json-path to retrieve a single value)"
231
+ puts
232
+ puts JSON.pretty_generate(record)
233
+ puts
216
234
  end
217
- else
218
- send_unknown(check_name, client, "#{msg} - Value: N/A")
219
235
  end
220
- else
221
- puts "InfluxDB query [#{query}] held the following result (use --json-path to retrieve a single value)"
222
- puts
223
- puts JSON.pretty_generate(record)
224
- puts
236
+ rescue
237
+ STDERR.puts($!)
238
+ problems += 1
225
239
  end
226
240
  end
227
- rescue
228
- STDERR.puts($!)
241
+ rescue Timeout::Error
242
+ STDERR.puts("InfluxDB query [#{query}] timed out")
229
243
  problems += 1
230
244
  end
231
245
  end
@@ -2,7 +2,7 @@ module SensuPluginsInfluxDbQ
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- PATCH = 5
5
+ PATCH = 6
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-influxdb-q
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matteo Cerutti
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-14 00:00:00.000000000 Z
11
+ date: 2016-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sensu-plugin