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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1c949341d92c3b4ab53a73e4bb6730e7c96cf06f
4
- data.tar.gz: 1f7b5faba9d2d4beaf0400999c6c5effc8d06a7b
3
+ metadata.gz: 59b2a0ef87bf23bb182781dcd48a5d578783e326
4
+ data.tar.gz: 915f1f28d7d280773e4fc5e925cdca9c7e0e5dcb
5
5
  SHA512:
6
- metadata.gz: 4fa1d53baacf1dc0a5e047c6b43c51d121d8aca09c81eefa703cfc07840f9aaa14ab4f4de16fd27e95f28b6278aaa5c137f49987212a4d950eaab501f2fdd7df
7
- data.tar.gz: 9d6702dfdc47bf67fee5cc9c401b994741569b98f6d46ae73328021206d7fa913194aab5329f09574101b53d655a87129be3b48d0227bab611215bfb0dd61033
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: 25
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 = 10
103
- YESTERDAY_START_PERIOD = 1455 # starts counting 1455 minutes before now() [ yesetrday - 10 minutes] to match with today_query_for_a_period 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(today, yesterday)
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(today, yesterday)
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
- def difference_between_two_metrics(original, newnumber)
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(today, yesterday)
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(today_metrics, yesterday_metrics)
373
- triangulated = difference_between_two_metrics(today_triangulated_metrics, yesterday_triangulated_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)
@@ -1,8 +1,8 @@
1
1
  module SensuPluginsInfluxDbMetricsChecker
2
2
  module Version
3
3
  MAJOR = 0
4
- MINOR = 4
5
- PATCH = 8
4
+ MINOR = 5
5
+ PATCH = 0
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-metrics-checker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.8
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-24 00:00:00.000000000 Z
11
+ date: 2017-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sensu-plugin