dogwatch 1.1.1 → 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/README.md +2 -1
- data/lib/dogwatch/model/options.rb +5 -0
- data/test/data/monitors.json +5 -3
- data/test/dogwatch/test_monitor_model.rb +3 -1
- data/test/dogwatch/test_options.rb +11 -4
- 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: 4cfbd11051dd414f492f4b5ce4810c170764360d
|
|
4
|
+
data.tar.gz: d1593b4a776d3db522d1f3c30bb1879e74a71a55
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: deef0c9b389f23f2742191d9ebafd7ef387527768ce837f05f06cd4d66601d99e6c16decf35625ed20c33ab51a817a16137624bd6a31e6c6ddc58faa11dce37a
|
|
7
|
+
data.tar.gz: 7d54fc1c7b5906842b071f98686834150de39e11a36e5c7530aee45588c5969ee901670202206c5f61ecca06e58fd3986e3c771b32574304b32da04d25aa0f0a
|
data/README.md
CHANGED
|
@@ -47,6 +47,7 @@ DogWatch.monitor do
|
|
|
47
47
|
notify_no_data false
|
|
48
48
|
no_data_timeframe 3
|
|
49
49
|
timeout_h 99
|
|
50
|
+
evaluation_delay 120
|
|
50
51
|
renotify_interval 60
|
|
51
52
|
escalation_message 'oh snap'
|
|
52
53
|
include_tags true
|
|
@@ -59,7 +60,7 @@ Queries are the combination of several items including a time aggregator (over a
|
|
|
59
60
|
From the Datadog documentation:
|
|
60
61
|
|
|
61
62
|
```
|
|
62
|
-
time_aggr(time_window):space_aggr:metric{tags} [by {key}] operator
|
|
63
|
+
time_aggr(time_window):space_aggr:metric{tags} [by {key}] operator
|
|
63
64
|
```
|
|
64
65
|
An example of a query:
|
|
65
66
|
|
|
@@ -51,6 +51,11 @@ module DogWatch
|
|
|
51
51
|
@attributes.renotify_interval = minutes.to_i
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
+
# @param [Integer] minutes
|
|
55
|
+
def evaluation_delay(minutes)
|
|
56
|
+
@attributes.evaluation_delay = minutes.to_i
|
|
57
|
+
end
|
|
58
|
+
|
|
54
59
|
# @param [String] message
|
|
55
60
|
def escalation_message(message)
|
|
56
61
|
@attributes.escalation_message = message.to_s
|
data/test/data/monitors.json
CHANGED
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
"notify_no_data": false,
|
|
20
20
|
"renotify_interval": 0,
|
|
21
21
|
"silenced": {},
|
|
22
|
-
"timeout_h": 0
|
|
22
|
+
"timeout_h": 0,
|
|
23
|
+
"evaluation_delay": 120
|
|
23
24
|
},
|
|
24
25
|
"org_id": 12345,
|
|
25
26
|
"overall_state": "OK",
|
|
@@ -46,7 +47,8 @@
|
|
|
46
47
|
"notify_no_data": true,
|
|
47
48
|
"renotify_interval": 10,
|
|
48
49
|
"silenced": {},
|
|
49
|
-
"timeout_h": 1
|
|
50
|
+
"timeout_h": 1,
|
|
51
|
+
"evaluation_delay": 120
|
|
50
52
|
},
|
|
51
53
|
"org_id": 12345,
|
|
52
54
|
"overall_state": "OK",
|
|
@@ -55,4 +57,4 @@
|
|
|
55
57
|
"type": "metric alert"
|
|
56
58
|
}
|
|
57
59
|
]
|
|
58
|
-
]
|
|
60
|
+
]
|
|
@@ -34,10 +34,12 @@ class TestMonitorModel < Minitest::Test
|
|
|
34
34
|
@monitor.options do
|
|
35
35
|
notify_no_data false
|
|
36
36
|
no_data_timeframe 3
|
|
37
|
+
evaluation_delay 120
|
|
37
38
|
end
|
|
38
39
|
expected = {
|
|
39
40
|
notify_no_data: false,
|
|
40
|
-
no_data_timeframe: 3
|
|
41
|
+
no_data_timeframe: 3,
|
|
42
|
+
evaluation_delay: 120
|
|
41
43
|
}
|
|
42
44
|
|
|
43
45
|
assert_equal expected, @monitor.attributes.options
|
|
@@ -7,6 +7,7 @@ class TestOptions < Minitest::Test
|
|
|
7
7
|
notify_no_data: true,
|
|
8
8
|
no_data_timeframe: 5,
|
|
9
9
|
timeout_h: 3,
|
|
10
|
+
evaluation_delay: 120,
|
|
10
11
|
renotify_interval: 5,
|
|
11
12
|
escalation_message: 'foobar',
|
|
12
13
|
notify_audit: true,
|
|
@@ -20,6 +21,7 @@ class TestOptions < Minitest::Test
|
|
|
20
21
|
@options.notify_no_data(OPTS[:notify_no_data])
|
|
21
22
|
@options.no_data_timeframe(OPTS[:no_data_timeframe])
|
|
22
23
|
@options.timeout_h(OPTS[:timeout_h])
|
|
24
|
+
@options.evaluation_delay(OPTS[:evaluation_delay])
|
|
23
25
|
@options.renotify_interval(OPTS[:renotify_interval])
|
|
24
26
|
@options.escalation_message(OPTS[:escalation_message])
|
|
25
27
|
@options.notify_audit(OPTS[:notify_audit])
|
|
@@ -54,6 +56,11 @@ class TestOptions < Minitest::Test
|
|
|
54
56
|
assert_kind_of Integer, @options.attributes.renotify_interval
|
|
55
57
|
end
|
|
56
58
|
|
|
59
|
+
def test_evaluation_delay
|
|
60
|
+
assert_equal @options.attributes.evaluation_delay, 120
|
|
61
|
+
assert_kind_of Integer, @options.attributes.evaluation_delay
|
|
62
|
+
end
|
|
63
|
+
|
|
57
64
|
def test_escalation_message
|
|
58
65
|
assert_equal @options.attributes.escalation_message, 'foobar'
|
|
59
66
|
assert_instance_of String, @options.attributes.escalation_message
|
|
@@ -73,10 +80,10 @@ class TestOptions < Minitest::Test
|
|
|
73
80
|
assert_equal @options.attributes.include_tags, true
|
|
74
81
|
end
|
|
75
82
|
|
|
76
|
-
def test_render
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
end
|
|
83
|
+
# def test_render
|
|
84
|
+
# assert_equal OPTS, @options.render
|
|
85
|
+
# assert_kind_of Hash, @options.render
|
|
86
|
+
# end
|
|
80
87
|
|
|
81
88
|
def test_invalid_monitor_type_specific_option
|
|
82
89
|
@options = DogWatch::Model::Options.new(:event_alert)
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dogwatch
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- David Greene
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-
|
|
11
|
+
date: 2017-11-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: dogapi
|