barkdog 0.1.3 → 0.1.4
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 +6 -1
- data/bin/barkdog +8 -1
- data/lib/barkdog/driver.rb +19 -3
- data/lib/barkdog/version.rb +1 -1
- data/spec/barkdog_spec.rb +6 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c21615f347dced36cd4409fb53dc2df65166ee91
|
4
|
+
data.tar.gz: 08dae8f1e3eaab800c87fc5bae38068466b49193
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 979495548620024f79d5bebf457f6826d307479ac239d567c45db493ebe4a3de4384c6a851914d6107517425d17c07a8ee6e023580011a725dda93649e718287
|
7
|
+
data.tar.gz: ec08151e9f466f7b00ea6cc32ab94248233ad27967605a257f118fb20358b09398ab7b85a89f127cd7295d54b05205e0c32fa72b1635876c880799a4ce86ccbd
|
data/README.md
CHANGED
@@ -62,6 +62,7 @@ monitor "Check load avg", :type=>"metric alert" do
|
|
62
62
|
query "avg(last_5m):avg:ddstat.load_avg.1m{host:i-XXXXXXXX} > 1"
|
63
63
|
message "@winebarrel@example.net"
|
64
64
|
options do
|
65
|
+
locked false
|
65
66
|
notify_no_data true
|
66
67
|
no_data_timeframe 2
|
67
68
|
notify_audit true
|
@@ -77,6 +78,7 @@ template "cpu template" do
|
|
77
78
|
query "avg(last_5m):avg:#{context.target}.load_avg.1m{host:i-XXXXXXXX} > 1"
|
78
79
|
message context.message
|
79
80
|
options do
|
81
|
+
locked false
|
80
82
|
notify_no_data true
|
81
83
|
no_data_timeframe 2
|
82
84
|
notify_audit true
|
@@ -90,7 +92,7 @@ monitor "Check load avg", :type=>"metric alert" do
|
|
90
92
|
end
|
91
93
|
|
92
94
|
template "basic monitor" do
|
93
|
-
monitor "#{target} cpu" do
|
95
|
+
monitor "#{context.target} cpu" do
|
94
96
|
query "avg(last_5m):avg:#{context.target}.load_avg.1m{host:i-XXXXXXXX} > 1"
|
95
97
|
...
|
96
98
|
end
|
@@ -105,3 +107,6 @@ end
|
|
105
107
|
...
|
106
108
|
end
|
107
109
|
```
|
110
|
+
|
111
|
+
## Similar tools
|
112
|
+
* [Codenize.tools](http://codenize.tools/)
|
data/bin/barkdog
CHANGED
@@ -11,6 +11,10 @@ DEFAULT_FILENAME = 'Barkfile'
|
|
11
11
|
mode = nil
|
12
12
|
file = DEFAULT_FILENAME
|
13
13
|
output_file = '-'
|
14
|
+
MAGIC_COMMENT = <<-EOS
|
15
|
+
# -*- mode: ruby -*-
|
16
|
+
# vi: set ft=ruby :
|
17
|
+
EOS
|
14
18
|
|
15
19
|
options = {
|
16
20
|
:api_key => ENV['BARKDOG_API_KEY'],
|
@@ -69,7 +73,10 @@ begin
|
|
69
73
|
puts client.export
|
70
74
|
else
|
71
75
|
logger.info("Export Datadog monitors to `#{output_file}`")
|
72
|
-
open(output_file, 'wb')
|
76
|
+
open(output_file, 'wb') do |f|
|
77
|
+
f.puts MAGIC_COMMENT
|
78
|
+
f.puts client.export
|
79
|
+
end
|
73
80
|
end
|
74
81
|
when :apply
|
75
82
|
unless File.exist?(file)
|
data/lib/barkdog/driver.rb
CHANGED
@@ -15,7 +15,7 @@ class Barkdog::Driver
|
|
15
15
|
end
|
16
16
|
|
17
17
|
unless @options[:dry_run]
|
18
|
-
@dog.monitor(
|
18
|
+
_, response = @dog.monitor(
|
19
19
|
attrs['type'],
|
20
20
|
attrs['query'],
|
21
21
|
:name => name,
|
@@ -23,6 +23,7 @@ class Barkdog::Driver
|
|
23
23
|
:options => attrs['options']
|
24
24
|
)
|
25
25
|
|
26
|
+
validate_response(response)
|
26
27
|
updated = true
|
27
28
|
end
|
28
29
|
|
@@ -34,7 +35,8 @@ class Barkdog::Driver
|
|
34
35
|
log(:info, "Delete Monitor: #{name}", :color => :red)
|
35
36
|
|
36
37
|
unless @options[:dry_run]
|
37
|
-
@dog.delete_monitor(attrs['id'])
|
38
|
+
_, response = @dog.delete_monitor(attrs['id'])
|
39
|
+
validate_response(response)
|
38
40
|
updated = true
|
39
41
|
end
|
40
42
|
|
@@ -60,17 +62,31 @@ class Barkdog::Driver
|
|
60
62
|
log(:info, diffy.to_s(@options[:color] ? :color : :text), :color => false)
|
61
63
|
|
62
64
|
unless @options[:dry_run]
|
63
|
-
@dog.update_monitor(
|
65
|
+
_, response = @dog.update_monitor(
|
64
66
|
expected['id'],
|
65
67
|
expected['query'],
|
66
68
|
:name => name,
|
67
69
|
:message => expected['message'],
|
68
70
|
:options => expected['options']
|
69
71
|
)
|
72
|
+
|
73
|
+
validate_response(response)
|
70
74
|
updated = true
|
71
75
|
end
|
72
76
|
end
|
73
77
|
|
74
78
|
updated
|
75
79
|
end
|
80
|
+
|
81
|
+
private
|
82
|
+
|
83
|
+
def validate_response(response)
|
84
|
+
if response['warnings']
|
85
|
+
log(:warn, response['warnings'].join("\n"), :color => :yellow)
|
86
|
+
end
|
87
|
+
|
88
|
+
if response['errors']
|
89
|
+
raise response['errors'].join("\n")
|
90
|
+
end
|
91
|
+
end
|
76
92
|
end
|
data/lib/barkdog/version.rb
CHANGED
data/spec/barkdog_spec.rb
CHANGED
@@ -7,6 +7,7 @@ monitor "my metric check", :type=>"metric alert" do
|
|
7
7
|
query "avg(last_5m):avg:datadog.dogstatsd.packet.count{*} > 1"
|
8
8
|
message "metric check message"
|
9
9
|
options do
|
10
|
+
locked false
|
10
11
|
no_data_timeframe 2
|
11
12
|
notify_audit false
|
12
13
|
notify_no_data false
|
@@ -18,6 +19,7 @@ monitor "my service check", :type=>"service check" do
|
|
18
19
|
query "\"datadog.agent.up\".over(\"*\").last(2).count_by_status()"
|
19
20
|
message "service check message"
|
20
21
|
options do
|
22
|
+
locked false
|
21
23
|
no_data_timeframe 2
|
22
24
|
notify_audit false
|
23
25
|
notify_no_data true
|
@@ -47,6 +49,7 @@ template 'my metric check' do
|
|
47
49
|
query "avg(last_5m):avg:datadog.dogstatsd.packet.count{*} > 1"
|
48
50
|
message "metric check message"
|
49
51
|
options do
|
52
|
+
locked false
|
50
53
|
no_data_timeframe context.no_data_timeframe
|
51
54
|
notify_audit false
|
52
55
|
notify_no_data false
|
@@ -55,6 +58,7 @@ template 'my metric check' do
|
|
55
58
|
end
|
56
59
|
|
57
60
|
template "my service check options" do
|
61
|
+
locked false
|
58
62
|
no_data_timeframe 2
|
59
63
|
notify_audit false
|
60
64
|
notify_no_data true
|
@@ -96,6 +100,7 @@ monitor "my metric check", :type=>"metric alert" do
|
|
96
100
|
query "avg(last_5m):avg:datadog.dogstatsd.packet.count{*} > 2"
|
97
101
|
message "metric check message2"
|
98
102
|
options do
|
103
|
+
locked false
|
99
104
|
no_data_timeframe 3
|
100
105
|
notify_audit true
|
101
106
|
notify_no_data true
|
@@ -107,6 +112,7 @@ monitor "my service check", :type=>"service check" do
|
|
107
112
|
query "\"datadog.agent.up\".over(\"*\").last(3).count_by_status()"
|
108
113
|
message "service check message2"
|
109
114
|
options do
|
115
|
+
locked false
|
110
116
|
no_data_timeframe 3
|
111
117
|
notify_audit true
|
112
118
|
notify_no_data true
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: barkdog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Genki Sugawara
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-07-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dogapi
|
@@ -161,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
161
161
|
version: '0'
|
162
162
|
requirements: []
|
163
163
|
rubyforge_project:
|
164
|
-
rubygems_version: 2.4.5
|
164
|
+
rubygems_version: 2.4.5.1
|
165
165
|
signing_key:
|
166
166
|
specification_version: 4
|
167
167
|
summary: Barkdog is a tool to manage Datadog monitors.
|