sensu-plugins-influxdb-metrics-checker 0.4.8 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/bin/check-influxdb-metrics.rb +20 -10
- data/lib/sensu-plugins-influxdb-metrics-checker/version.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59b2a0ef87bf23bb182781dcd48a5d578783e326
|
4
|
+
data.tar.gz: 915f1f28d7d280773e4fc5e925cdca9c7e0e5dcb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a27e57baeb6db9e730aa62a9ce42d5ddc1e0eb76372ee1b1bf1de6e7ad17a2eaf86339288e4359f74eac8596a1191ca83f74250f41973455835ffea9a7acaac
|
7
|
+
data.tar.gz: e5f351a2bcae1822e41d928da7e3d1870dd8874ad59ebbbd052ea0884b44c11629d6cf0e4512e676a3f3d3380221397095dfa0ed187b3436b2688c383c16d8dc
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,10 @@ 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
|
+
# [0.5.0] - 2017-01-24
|
7
|
+
- tenth release
|
8
|
+
Changing from Percentage of Difference to Percentage of Change.
|
9
|
+
|
6
10
|
# [0.4.8] - 2017-01-24
|
7
11
|
- ninth release
|
8
12
|
Bug fix when values comes as null. Now they will become zero.
|
@@ -83,7 +83,7 @@ class CheckInfluxDbMetrics < Sensu::Plugin::Check::CLI
|
|
83
83
|
long: '--period=VALUE',
|
84
84
|
description: 'Filter by a given day period in minutes',
|
85
85
|
proc: proc { |l| l.to_i },
|
86
|
-
default:
|
86
|
+
default: 30
|
87
87
|
|
88
88
|
option :triangulate,
|
89
89
|
long: '--triangulate=VALUE',
|
@@ -99,8 +99,8 @@ class CheckInfluxDbMetrics < Sensu::Plugin::Check::CLI
|
|
99
99
|
default: 2
|
100
100
|
|
101
101
|
BASE_QUERY = 'SELECT sum("value") from '.freeze
|
102
|
-
TODAY_START_PERIOD =
|
103
|
-
YESTERDAY_START_PERIOD =
|
102
|
+
TODAY_START_PERIOD = 20
|
103
|
+
YESTERDAY_START_PERIOD = 1465 # starts counting 1455 minutes before now() [ yesetrday - 20 minutes] to match with today_query_for_a_period start_period
|
104
104
|
|
105
105
|
def yesterday_end_period
|
106
106
|
config[:period] + YESTERDAY_START_PERIOD
|
@@ -283,12 +283,12 @@ class CheckInfluxDbMetrics < Sensu::Plugin::Check::CLI
|
|
283
283
|
end
|
284
284
|
|
285
285
|
def difference_for_standard_queries(today, yesterday)
|
286
|
-
difference = difference_between_two_metrics(
|
286
|
+
difference = difference_between_two_metrics(yesterday, today)
|
287
287
|
evaluate_percentage_and_notify(difference)
|
288
288
|
end
|
289
289
|
|
290
290
|
def difference_for_regex_queries(today, yesterday)
|
291
|
-
difference = difference_between_two_metrics(
|
291
|
+
difference = difference_between_two_metrics(yesterday, today)
|
292
292
|
evaluate_percentage_for_regex(difference)
|
293
293
|
end
|
294
294
|
|
@@ -307,14 +307,24 @@ class CheckInfluxDbMetrics < Sensu::Plugin::Check::CLI
|
|
307
307
|
if today_value > yesterday_value
|
308
308
|
difference_for_regex_queries(today_value, yesterday_value)
|
309
309
|
end
|
310
|
+
else
|
311
|
+
warn 'new metric found: ' + today_key
|
310
312
|
end
|
311
313
|
end
|
312
314
|
|
313
|
-
|
315
|
+
# percentage difference calculator (deprecated)
|
316
|
+
def previous_difference_between_two_metrics(original, newnumber)
|
314
317
|
decrease = original - newnumber
|
315
318
|
decrease.to_f / original.to_f * 100
|
316
319
|
end
|
317
320
|
|
321
|
+
# percentage of change
|
322
|
+
def difference_between_two_metrics(yesterday, today)
|
323
|
+
decrease = today.to_f - yesterday.to_f
|
324
|
+
division = decrease.to_f / yesterday.to_f.abs
|
325
|
+
division.to_f * 100.to_f
|
326
|
+
end
|
327
|
+
|
318
328
|
def request(path)
|
319
329
|
protocol = config[:ssl] ? 'https' : 'http'
|
320
330
|
auth = Base64.encode64("#{config[:user]}:#{config[:pass]}")
|
@@ -351,7 +361,7 @@ class CheckInfluxDbMetrics < Sensu::Plugin::Check::CLI
|
|
351
361
|
|
352
362
|
def evaluate_distance_and_notify(distance)
|
353
363
|
if distance > config[:distance].to_f
|
354
|
-
puts 'distance of ' + distance.to_s
|
364
|
+
puts 'distance of ' + distance.round(3).to_s
|
355
365
|
critical config[:metric] + ' vs ' + config[:triangulate] + ' distance is greater than allowed minimum of ' + config[:distance].to_s
|
356
366
|
else
|
357
367
|
ok 'distance ok'
|
@@ -362,15 +372,15 @@ class CheckInfluxDbMetrics < Sensu::Plugin::Check::CLI
|
|
362
372
|
if @is_using_regex
|
363
373
|
difference_for_regex_and_notify
|
364
374
|
else
|
365
|
-
difference_between_two_metrics(
|
375
|
+
difference_between_two_metrics(yesterday, today)
|
366
376
|
end
|
367
377
|
end
|
368
378
|
|
369
379
|
def difference_between_percentages_of_two_metrics
|
370
380
|
validate_base_metrics
|
371
381
|
validate_triangulated_metrics
|
372
|
-
base = difference_between_two_metrics(
|
373
|
-
triangulated = difference_between_two_metrics(
|
382
|
+
base = difference_between_two_metrics(yesterday_metrics, today_metrics)
|
383
|
+
triangulated = difference_between_two_metrics(yesterday_triangulated_metrics, today_triangulated_metrics)
|
374
384
|
puts 'difference for ' + config[:metric] + ' ' + base.round(3).to_s + '% vs ' + config[:triangulate] + ' ' + triangulated.round(3).to_s + '%'
|
375
385
|
distance = distance_between_two_numbers(base, triangulated)
|
376
386
|
evaluate_distance_and_notify(distance)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugins-influxdb-metrics-checker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juanjo Guerrero Cerezuela
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-01-
|
11
|
+
date: 2017-01-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sensu-plugin
|