barkdog 0.0.1 → 0.1.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/.rspec +2 -0
- data/.travis.yml +10 -0
- data/README.md +3 -0
- data/Rakefile +3 -0
- data/barkdog.gemspec +1 -0
- data/lib/barkdog/version.rb +1 -1
- data/spec/barkdog_spec.rb +80 -0
- data/spec/spec_helper.rb +50 -0
- metadata +22 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8eb8ef495351e01eb4686bbc1d73c68529267ae0
|
|
4
|
+
data.tar.gz: 69eeda438a1769ddce356e142ff224397b3830b9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 912452f325a9a745879cb0ca115494967d73cea9c1a460e16101b7fcfc12990d21b7436126206c9575a655769b1936122088fac701bb556bd5a6cf9ed3dfaa59
|
|
7
|
+
data.tar.gz: 8fb714af798b001fee0d23ca4c7ea63237b86fd39ffdd3bfc7f615d5ad60712526d6d42869336d2f027a3dc547fcdfa16891d0a0d2e8f550d0fcc86a187ba9c5
|
data/.rspec
ADDED
data/.travis.yml
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
language: ruby
|
|
2
|
+
rvm:
|
|
3
|
+
- 2.0.0
|
|
4
|
+
script:
|
|
5
|
+
- bundle install
|
|
6
|
+
- bundle exec rake
|
|
7
|
+
env:
|
|
8
|
+
global:
|
|
9
|
+
- secure: "isrR0KYg4po5oZNWV3X6eSIryA7BdcMdyztIJPILZR0gRVd0IQLbe/0npvxFKzn7Y4mwQ/4N3oLnd1Jv/okuIC+zvMim+ZDyZP6uK0mDg9AFY718BVBhDcXjp85aW2KXki7dpUZ6G+cbsAtYbomEh/Soi3y47m+Ov/1odz7qylXBnwEZKbsxsoGd9iwb/DmFOCQeXvit+pQa4lPkTynu2etUxJtrzUPCxEBjcDXOB08GuDOQlAbnokiqN2pMwq60HC1UxynRF8OsUgb9yWOu+w80MbR5Qd+ZOXLe9sxY9/vuPPK3U3bwuuWEla2UVj/Ep2t19IzzkRTTrSBALqirOFJCMExJDBbgFgbwJ/uRYdpuNpvJvo5GcPWeYYJwvVQVA8vkOgUQkMZkhDPyOVNjwCrh+p43Qkjp52TcN/TzgMDSPI2FVKT/MkaymlbzVS/foq68E3D4DllapRr1GeDC1QWrBudVLyu+qjvlMAnTFb3tNj1nEo1FMS9bjgAvx9ZozWe6c04ERp58UWS9Yhd+zVaj92opJjC3NDopBTQpp7Qm3NSgWDexAmBmIVJZK1J7zjCZleaUXJSeYLzDvraiGdWwh1RLv494m0UvI1Mk+iKe6XvPnA0qN8hC+5lCUX2DgfoW5lVvzpYRUbT1+51/6dl37EPxyDMrTTMeCUuswgY="
|
|
10
|
+
- secure: "WDt4jTFiBqERrGGA1XUIDKkbidYfvoXA1FLXPU70fj2xoB1tjVMW8MPZfgcVwMhDtqEVeVZ75lygad3Ib8yJLpGtWMnI9Lw6a4/kSnruSdn9pgrqxIOZqndjnIPPkiTZSWd+jrVypsq+z9NSkEYAcLUhLSV72AZB4hcQ0/LO9p3gNS0dqT83hILvuMF34WCx1oTIS9QmjBFuJInAK2vAObb4zfw50HTQUxjtfiZRDN+TUUzHNeZAPPUVg/jGrD+mUxnPi2m5hPUiSga9tyBgTCEMvJV4JuvK3qtcB1PHdsrddEnyAHRsE3GUBSosqKgEFHOib9NLYVx/9UQp/EEq4D+df+8rFK6setYTgZNNOV/S+7odX8/kd/N9PUVRUULjHnYGgSuqQFGXU07qYvdLPVFedmYVWoM+HdCQ+S1FYARqz0W7skrcIg/MuDXAu9PmTLUgCQMr5Ti4vkPaGnq0KHtkxxA73XzYg9zeti7WUFZ14pNH+2MBQ87mjW73ZZ5b5bkxOQ1TTZGaNSiu0Eds58fonVvg1GZrwkxeWgOuxJ6j8+cKQi554AmpRLCUS66e0J3teDWPiJZSc+1VoHm26OFN2UGh8M9XPDRIIF/DO6Xl8/3EnI0O0HsHTSeaXtPkUh6+QJtjoeOcEewl6EDheKVw07CmaFbR1tS2DDiUlGk="
|
data/README.md
CHANGED
|
@@ -4,6 +4,9 @@ Barkdog is a tool to manage [Datadog monitors](http://docs.datadoghq.com/guides/
|
|
|
4
4
|
|
|
5
5
|
It defines Datadog monitors using Ruby DSL, and updates monitors according to DSL.
|
|
6
6
|
|
|
7
|
+
[](http://badge.fury.io/rb/barkdog)
|
|
8
|
+
[](https://travis-ci.org/winebarrel/barkdog)
|
|
9
|
+
|
|
7
10
|
## Installation
|
|
8
11
|
|
|
9
12
|
Add this line to your application's Gemfile:
|
data/Rakefile
CHANGED
data/barkdog.gemspec
CHANGED
data/lib/barkdog/version.rb
CHANGED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
describe Barkdog::Client do
|
|
2
|
+
subject { barkdog_client.export }
|
|
3
|
+
|
|
4
|
+
let(:actual_dsl) do
|
|
5
|
+
<<-'RUBY'
|
|
6
|
+
monitor "my metric check", :type=>"metric alert" do
|
|
7
|
+
query "avg(last_5m):avg:datadog.dogstatsd.packet.count{*} > 1"
|
|
8
|
+
message "metric check message"
|
|
9
|
+
options do
|
|
10
|
+
notify_no_data false
|
|
11
|
+
no_data_timeframe 2
|
|
12
|
+
notify_audit false
|
|
13
|
+
silenced({})
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
monitor "my service check", :type=>"service check" do
|
|
18
|
+
query "\"datadog.agent.up\".over(\"*\").last(2).count_by_status()"
|
|
19
|
+
message "service check message"
|
|
20
|
+
options do
|
|
21
|
+
notify_audit false
|
|
22
|
+
timeout_h 0
|
|
23
|
+
silenced({})
|
|
24
|
+
thresholds "warning"=>1, "ok"=>1, "critical"=>1
|
|
25
|
+
period 15
|
|
26
|
+
notify_no_data true
|
|
27
|
+
renotify_interval 0
|
|
28
|
+
no_data_timeframe 2
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
RUBY
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
before { barkdog { actual_dsl } }
|
|
35
|
+
|
|
36
|
+
context 'when create monitors' do
|
|
37
|
+
it { is_expected.to eq actual_dsl }
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
context 'when delete monitors' do
|
|
41
|
+
let(:expected_dsl) { '' }
|
|
42
|
+
before { barkdog { expected_dsl } }
|
|
43
|
+
it { is_expected.to eq expected_dsl }
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
context 'when update monitors' do
|
|
47
|
+
let(:expected_dsl) do
|
|
48
|
+
<<-'RUBY'
|
|
49
|
+
monitor "my metric check", :type=>"metric alert" do
|
|
50
|
+
query "avg(last_5m):avg:datadog.dogstatsd.packet.count{*} > 2"
|
|
51
|
+
message "metric check message2"
|
|
52
|
+
options do
|
|
53
|
+
notify_no_data true
|
|
54
|
+
no_data_timeframe 3
|
|
55
|
+
notify_audit true
|
|
56
|
+
silenced "*"=>nil
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
monitor "my service check", :type=>"service check" do
|
|
61
|
+
query "\"datadog.agent.up\".over(\"*\").last(3).count_by_status()"
|
|
62
|
+
message "service check message2"
|
|
63
|
+
options do
|
|
64
|
+
notify_audit true
|
|
65
|
+
timeout_h 1
|
|
66
|
+
silenced "*"=>nil
|
|
67
|
+
thresholds "warning"=>2, "ok"=>2, "critical"=>2
|
|
68
|
+
period 30
|
|
69
|
+
notify_no_data true
|
|
70
|
+
renotify_interval 1
|
|
71
|
+
no_data_timeframe 3
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
RUBY
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
before { barkdog { expected_dsl } }
|
|
78
|
+
it { is_expected.to eq expected_dsl }
|
|
79
|
+
end
|
|
80
|
+
end
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
require 'barkdog'
|
|
2
|
+
require 'tempfile'
|
|
3
|
+
|
|
4
|
+
BARKDOG_TEST_API_KEY = ENV['BARKDOG_TEST_API_KEY']
|
|
5
|
+
BARKDOG_TEST_APP_KEY = ENV['BARKDOG_TEST_APP_KEY']
|
|
6
|
+
|
|
7
|
+
RSpec.configure do |config|
|
|
8
|
+
config.before(:each) do
|
|
9
|
+
barkdog { '' }
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
config.after(:all) do
|
|
13
|
+
barkdog { '' }
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def barkdog_client(options = {})
|
|
18
|
+
options = {
|
|
19
|
+
api_key: BARKDOG_TEST_API_KEY,
|
|
20
|
+
application_key: BARKDOG_TEST_APP_KEY,
|
|
21
|
+
}.merge(options)
|
|
22
|
+
|
|
23
|
+
if ENV['DEBUG'] == '1'
|
|
24
|
+
options[:debug] = true
|
|
25
|
+
else
|
|
26
|
+
options[:logger] = Logger.new('/dev/null')
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
Barkdog::Client.new(options)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def barkdog(options = {})
|
|
33
|
+
client = barkdog_client(options)
|
|
34
|
+
|
|
35
|
+
tempfile(yield) do |f|
|
|
36
|
+
client.apply(f.path)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def tempfile(content, options = {})
|
|
41
|
+
basename = "#{File.basename __FILE__}.#{$$}"
|
|
42
|
+
basename = [basename, options[:ext]] if options[:ext]
|
|
43
|
+
|
|
44
|
+
Tempfile.open(basename) do |f|
|
|
45
|
+
f.puts(content)
|
|
46
|
+
f.flush
|
|
47
|
+
f.rewind
|
|
48
|
+
yield(f)
|
|
49
|
+
end
|
|
50
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: barkdog
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0
|
|
4
|
+
version: 0.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Genki Sugawara
|
|
@@ -66,6 +66,20 @@ dependencies:
|
|
|
66
66
|
- - '>='
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '0'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: rspec
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - '>='
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: 0.3.0
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - '>='
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: 0.3.0
|
|
69
83
|
description: Barkdog is a tool to manage Datadog monitors.
|
|
70
84
|
email:
|
|
71
85
|
- sgwr_dts@yahoo.co.jp
|
|
@@ -75,6 +89,8 @@ extensions: []
|
|
|
75
89
|
extra_rdoc_files: []
|
|
76
90
|
files:
|
|
77
91
|
- .gitignore
|
|
92
|
+
- .rspec
|
|
93
|
+
- .travis.yml
|
|
78
94
|
- Gemfile
|
|
79
95
|
- LICENSE.txt
|
|
80
96
|
- README.md
|
|
@@ -94,6 +110,8 @@ files:
|
|
|
94
110
|
- lib/barkdog/ext/string_ext.rb
|
|
95
111
|
- lib/barkdog/logger.rb
|
|
96
112
|
- lib/barkdog/version.rb
|
|
113
|
+
- spec/barkdog_spec.rb
|
|
114
|
+
- spec/spec_helper.rb
|
|
97
115
|
homepage: https://github.com/winebarrel/barkdog
|
|
98
116
|
licenses:
|
|
99
117
|
- MIT
|
|
@@ -118,4 +136,6 @@ rubygems_version: 2.0.14
|
|
|
118
136
|
signing_key:
|
|
119
137
|
specification_version: 4
|
|
120
138
|
summary: Barkdog is a tool to manage Datadog monitors.
|
|
121
|
-
test_files:
|
|
139
|
+
test_files:
|
|
140
|
+
- spec/barkdog_spec.rb
|
|
141
|
+
- spec/spec_helper.rb
|