kennel 1.1.3 → 1.2.0
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 +4 -4
- data/lib/kennel/models/base.rb +10 -1
- data/lib/kennel/models/monitor.rb +15 -17
- data/lib/kennel/models/team.rb +1 -1
- data/lib/kennel/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7a5c47325d6b67585b8fe87c91aca09e5bfc1f1733bb947a807cc55a1b69eb0
|
4
|
+
data.tar.gz: a11927863dcf10f84d28f35a074f1dcc0744493bf2861d8905dea2edd6e12866
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d7b51f07ac1dc137b2197761891bd64c4b7752240977bfe2617cb12fef42204409e1fc80bc2072bd43f289b07468879a6e2e20f9e399f1df4127e0924ab1038
|
7
|
+
data.tar.gz: 80bd9891d18cf951bc10a94af66345f9b6ebc3af0b3fbebc090fc504198f654f2d1b075fe06b1e0d9ed1e31dd420279ce9f79995d05493511cacb80104821293
|
data/lib/kennel/models/base.rb
CHANGED
@@ -54,10 +54,19 @@ module Kennel
|
|
54
54
|
self.class.validate_setting_exists name
|
55
55
|
define_singleton_method name, &block
|
56
56
|
end
|
57
|
+
|
58
|
+
@invocation_location = caller.detect { |l| l.start_with?(Dir.pwd) }
|
57
59
|
end
|
58
60
|
|
59
61
|
def kennel_id
|
60
|
-
|
62
|
+
name = self.class.name
|
63
|
+
if name.start_with?("Kennel::")
|
64
|
+
message = +"Set :kennel_id"
|
65
|
+
message << " for project #{project.kennel_id}" if defined?(project)
|
66
|
+
message << " on #{@invocation_location}" if @invocation_location
|
67
|
+
raise ArgumentError, message
|
68
|
+
end
|
69
|
+
@kennel_id ||= Utils.snake_case name
|
61
70
|
end
|
62
71
|
|
63
72
|
def name
|
@@ -7,6 +7,7 @@ module Kennel
|
|
7
7
|
API_LIST_INCOMPLETE = false
|
8
8
|
RENOTIFY_INTERVALS = [0, 10, 20, 30, 40, 50, 60, 90, 120, 180, 240, 300, 360, 720, 1440].freeze # minutes
|
9
9
|
QUERY_INTERVALS = ["1m", "5m", "10m", "15m", "30m", "1h", "2h", "4h", "24h"].freeze
|
10
|
+
OPTIONAL_SERVICE_CHECK_THRESHOLDS = [:ok, :warning].freeze
|
10
11
|
|
11
12
|
settings(
|
12
13
|
:query, :name, :message, :escalation_message, :critical, :kennel_id, :type, :renotify_interval, :warning,
|
@@ -35,13 +36,6 @@ module Kennel
|
|
35
36
|
super(*args)
|
36
37
|
end
|
37
38
|
|
38
|
-
def kennel_id
|
39
|
-
if self.class == Kennel::Models::Monitor
|
40
|
-
raise "Need to set :kennel_id when defining monitors from Kennel::Models::Monitor"
|
41
|
-
end
|
42
|
-
super
|
43
|
-
end
|
44
|
-
|
45
39
|
def as_json
|
46
40
|
return @as_json if @as_json
|
47
41
|
data = {
|
@@ -85,8 +79,12 @@ module Kennel
|
|
85
79
|
end
|
86
80
|
end
|
87
81
|
|
88
|
-
|
89
|
-
|
82
|
+
case data.fetch(:type)
|
83
|
+
when "service check"
|
84
|
+
# avoid diff for default values of 1
|
85
|
+
OPTIONAL_SERVICE_CHECK_THRESHOLDS.each { |t| thresholds[t] ||= 1 }
|
86
|
+
when "query alert"
|
87
|
+
# metric and query values are stored as float by datadog
|
90
88
|
thresholds.each { |k, v| thresholds[k] = Float(v) }
|
91
89
|
end
|
92
90
|
|
@@ -114,16 +112,16 @@ module Kennel
|
|
114
112
|
options[:require_full_window] = true unless options.key?(:require_full_window)
|
115
113
|
end
|
116
114
|
|
117
|
-
|
118
|
-
|
115
|
+
case actual[:type]
|
116
|
+
when "event alert"
|
117
|
+
# setting 0 results in thresholds not getting returned from the api
|
119
118
|
options[:thresholds] ||= { critical: 0 }
|
120
|
-
end
|
121
119
|
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
120
|
+
when "service check"
|
121
|
+
# fields are not returned when created with default values via UI
|
122
|
+
OPTIONAL_SERVICE_CHECK_THRESHOLDS.each do |t|
|
123
|
+
options[:thresholds][t] ||= 1
|
124
|
+
end
|
127
125
|
end
|
128
126
|
|
129
127
|
# nil or "" are not returned from the api
|
data/lib/kennel/models/team.rb
CHANGED
data/lib/kennel/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kennel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Grosser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|