dogapi 1.22.0 → 1.23.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rspec +1 -1
- data/.rubocop.yml +13 -0
- data/.travis.yml +3 -1
- data/CHANGELOG.md +16 -1
- data/Gemfile +6 -3
- data/README.rdoc +1 -1
- data/Rakefile +8 -15
- data/lib/capistrano/datadog.rb +12 -12
- data/lib/capistrano/datadog/v2.rb +5 -5
- data/lib/capistrano/datadog/v3.rb +9 -4
- data/lib/dogapi/common.rb +43 -39
- data/lib/dogapi/event.rb +4 -4
- data/lib/dogapi/facade.rb +57 -54
- data/lib/dogapi/metric.rb +2 -2
- data/lib/dogapi/v1/alert.rb +17 -80
- data/lib/dogapi/v1/comment.rb +8 -39
- data/lib/dogapi/v1/dash.rb +20 -67
- data/lib/dogapi/v1/embed.rb +11 -57
- data/lib/dogapi/v1/event.rb +37 -72
- data/lib/dogapi/v1/metric.rb +17 -46
- data/lib/dogapi/v1/monitor.rb +54 -194
- data/lib/dogapi/v1/screenboard.rb +8 -77
- data/lib/dogapi/v1/search.rb +5 -11
- data/lib/dogapi/v1/service_check.rb +6 -15
- data/lib/dogapi/v1/snapshot.rb +10 -15
- data/lib/dogapi/v1/tag.rb +39 -99
- data/lib/dogapi/v1/user.rb +15 -69
- data/lib/dogapi/version.rb +1 -1
- data/spec/integration/alert_spec.rb +48 -0
- data/spec/integration/comment_spec.rb +32 -0
- data/spec/integration/common_spec.rb +32 -0
- data/spec/integration/dash_spec.rb +60 -0
- data/spec/integration/embed_spec.rb +43 -0
- data/spec/integration/event_spec.rb +73 -0
- data/spec/integration/metric_spec.rb +96 -0
- data/spec/integration/monitor_spec.rb +106 -0
- data/spec/integration/screenboard_spec.rb +61 -0
- data/spec/integration/search_spec.rb +11 -0
- data/spec/integration/service_check_spec.rb +12 -0
- data/spec/integration/snapshot_spec.rb +24 -0
- data/spec/integration/tag_spec.rb +66 -0
- data/spec/integration/user_spec.rb +46 -0
- data/spec/spec_helper.rb +85 -16
- data/spec/unit/common_spec.rb +101 -0
- data/spec/unit/facade_spec.rb +79 -0
- metadata +55 -52
- data/spec/alerts_spec.rb +0 -33
- data/spec/common_spec.rb +0 -37
- data/spec/facade_spec.rb +0 -166
- data/spec/support/cassettes/Alerts/create/returns_HTTP_code_200.yml +0 -114
- data/spec/support/cassettes/Alerts/create/returns_a_valid_event_ID.yml +0 -114
- data/spec/support/cassettes/Alerts/create/returns_the_same_query_as_sent.yml +0 -114
- data/spec/support/cassettes/Facade/Events/emits_aggregate_events.yml +0 -193
- data/spec/support/cassettes/Facade/Events/emits_events_and_retrieves_them.yml +0 -100
- data/spec/support/cassettes/Facade/Events/emits_events_with_specified_priority.yml +0 -98
- data/spec/support/cassettes/Facade/Tags/adds_updates_and_detaches_tags.yml +0 -442
- data/tests/test_alerts.rb +0 -38
- data/tests/test_base.rb +0 -30
- data/tests/test_client.rb +0 -23
- data/tests/test_comments.rb +0 -39
- data/tests/test_dashes.rb +0 -85
- data/tests/test_embed.rb +0 -194
- data/tests/test_monitors.rb +0 -192
- data/tests/test_screenboard.rb +0 -90
- data/tests/test_search.rb +0 -20
- data/tests/test_snapshot.rb +0 -28
- data/tests/test_users.rb +0 -65
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dogapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.23.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Datadog, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.3'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '10'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '10'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rdoc
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
description: Ruby bindings for Datadog's API
|
@@ -74,10 +74,11 @@ extensions: []
|
|
74
74
|
extra_rdoc_files:
|
75
75
|
- README.rdoc
|
76
76
|
files:
|
77
|
-
- .gitignore
|
78
|
-
- .rspec
|
79
|
-
- .
|
80
|
-
- .
|
77
|
+
- ".gitignore"
|
78
|
+
- ".rspec"
|
79
|
+
- ".rubocop.yml"
|
80
|
+
- ".tailor"
|
81
|
+
- ".travis.yml"
|
81
82
|
- CHANGELOG.md
|
82
83
|
- Gemfile
|
83
84
|
- LICENSE
|
@@ -111,67 +112,69 @@ files:
|
|
111
112
|
- lib/dogapi/v1/tag.rb
|
112
113
|
- lib/dogapi/v1/user.rb
|
113
114
|
- lib/dogapi/version.rb
|
114
|
-
- spec/
|
115
|
-
- spec/
|
116
|
-
- spec/
|
115
|
+
- spec/integration/alert_spec.rb
|
116
|
+
- spec/integration/comment_spec.rb
|
117
|
+
- spec/integration/common_spec.rb
|
118
|
+
- spec/integration/dash_spec.rb
|
119
|
+
- spec/integration/embed_spec.rb
|
120
|
+
- spec/integration/event_spec.rb
|
121
|
+
- spec/integration/metric_spec.rb
|
122
|
+
- spec/integration/monitor_spec.rb
|
123
|
+
- spec/integration/screenboard_spec.rb
|
124
|
+
- spec/integration/search_spec.rb
|
125
|
+
- spec/integration/service_check_spec.rb
|
126
|
+
- spec/integration/snapshot_spec.rb
|
127
|
+
- spec/integration/tag_spec.rb
|
128
|
+
- spec/integration/user_spec.rb
|
117
129
|
- spec/spec_helper.rb
|
118
|
-
- spec/
|
119
|
-
- spec/
|
120
|
-
- spec/support/cassettes/Alerts/create/returns_the_same_query_as_sent.yml
|
121
|
-
- spec/support/cassettes/Facade/Events/emits_aggregate_events.yml
|
122
|
-
- spec/support/cassettes/Facade/Events/emits_events_and_retrieves_them.yml
|
123
|
-
- spec/support/cassettes/Facade/Events/emits_events_with_specified_priority.yml
|
124
|
-
- spec/support/cassettes/Facade/Tags/adds_updates_and_detaches_tags.yml
|
125
|
-
- tests/test_alerts.rb
|
126
|
-
- tests/test_base.rb
|
127
|
-
- tests/test_client.rb
|
128
|
-
- tests/test_comments.rb
|
129
|
-
- tests/test_dashes.rb
|
130
|
-
- tests/test_embed.rb
|
131
|
-
- tests/test_monitors.rb
|
132
|
-
- tests/test_screenboard.rb
|
133
|
-
- tests/test_search.rb
|
134
|
-
- tests/test_snapshot.rb
|
135
|
-
- tests/test_users.rb
|
130
|
+
- spec/unit/common_spec.rb
|
131
|
+
- spec/unit/facade_spec.rb
|
136
132
|
homepage: http://datadoghq.com/
|
137
133
|
licenses:
|
138
134
|
- BSD
|
139
135
|
metadata: {}
|
140
136
|
post_install_message:
|
141
137
|
rdoc_options:
|
142
|
-
- --title
|
138
|
+
- "--title"
|
143
139
|
- DogAPI -- Datadog Client
|
144
|
-
- --main
|
140
|
+
- "--main"
|
145
141
|
- README.rdoc
|
146
|
-
- --line-numbers
|
147
|
-
- --inline-source
|
142
|
+
- "--line-numbers"
|
143
|
+
- "--inline-source"
|
148
144
|
require_paths:
|
149
145
|
- lib
|
150
146
|
required_ruby_version: !ruby/object:Gem::Requirement
|
151
147
|
requirements:
|
152
|
-
- -
|
148
|
+
- - ">="
|
153
149
|
- !ruby/object:Gem::Version
|
154
150
|
version: '0'
|
155
151
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
156
152
|
requirements:
|
157
|
-
- -
|
153
|
+
- - ">="
|
158
154
|
- !ruby/object:Gem::Version
|
159
155
|
version: '0'
|
160
156
|
requirements: []
|
161
157
|
rubyforge_project:
|
162
|
-
rubygems_version: 2.
|
158
|
+
rubygems_version: 2.4.3
|
163
159
|
signing_key:
|
164
160
|
specification_version: 4
|
165
161
|
summary: Ruby bindings for Datadog's API
|
166
162
|
test_files:
|
167
|
-
- spec/
|
168
|
-
- spec/
|
169
|
-
- spec/
|
163
|
+
- spec/integration/alert_spec.rb
|
164
|
+
- spec/integration/comment_spec.rb
|
165
|
+
- spec/integration/common_spec.rb
|
166
|
+
- spec/integration/dash_spec.rb
|
167
|
+
- spec/integration/embed_spec.rb
|
168
|
+
- spec/integration/event_spec.rb
|
169
|
+
- spec/integration/metric_spec.rb
|
170
|
+
- spec/integration/monitor_spec.rb
|
171
|
+
- spec/integration/screenboard_spec.rb
|
172
|
+
- spec/integration/search_spec.rb
|
173
|
+
- spec/integration/service_check_spec.rb
|
174
|
+
- spec/integration/snapshot_spec.rb
|
175
|
+
- spec/integration/tag_spec.rb
|
176
|
+
- spec/integration/user_spec.rb
|
170
177
|
- spec/spec_helper.rb
|
171
|
-
- spec/
|
172
|
-
- spec/
|
173
|
-
|
174
|
-
- spec/support/cassettes/Facade/Events/emits_aggregate_events.yml
|
175
|
-
- spec/support/cassettes/Facade/Events/emits_events_and_retrieves_them.yml
|
176
|
-
- spec/support/cassettes/Facade/Events/emits_events_with_specified_priority.yml
|
177
|
-
- spec/support/cassettes/Facade/Tags/adds_updates_and_detaches_tags.yml
|
178
|
+
- spec/unit/common_spec.rb
|
179
|
+
- spec/unit/facade_spec.rb
|
180
|
+
has_rdoc: true
|
data/spec/alerts_spec.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "Alerts", :vcr => true do
|
4
|
-
|
5
|
-
before(:all) do
|
6
|
-
@api_key = ENV["DATADOG_API_KEY"]
|
7
|
-
@app_key = ENV["DATADOG_APP_KEY"]
|
8
|
-
@dog = Dogapi::Client.new(@api_key, @app_key)
|
9
|
-
@query = 'avg(last_10m):avg:test.metric.metric{host:test.metric.host} > 5'
|
10
|
-
end
|
11
|
-
|
12
|
-
context "create" do
|
13
|
-
before(:each) do
|
14
|
-
@new_alert = @dog.alert(@query)
|
15
|
-
end
|
16
|
-
after(:each) do
|
17
|
-
@dog.delete_alert(@new_alert[1]['id'])
|
18
|
-
end
|
19
|
-
|
20
|
-
it "returns HTTP code 200" do
|
21
|
-
expect(@new_alert[0]).to eq '200'
|
22
|
-
end
|
23
|
-
|
24
|
-
it "returns a valid event ID" do
|
25
|
-
expect(@new_alert[1]['id']).to be_a(Fixnum)
|
26
|
-
end
|
27
|
-
|
28
|
-
it "returns the same query as sent" do
|
29
|
-
expect(@new_alert[1]['query']).to eq @query
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|
data/spec/common_spec.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "Common" do
|
4
|
-
|
5
|
-
context "Scope" do
|
6
|
-
|
7
|
-
it "validates the Scope class" do
|
8
|
-
obj = Dogapi::Scope.new("somehost", "somedevice")
|
9
|
-
|
10
|
-
expect(obj.host).to eq "somehost"
|
11
|
-
expect(obj.device).to eq "somedevice"
|
12
|
-
end
|
13
|
-
|
14
|
-
end # end Scope
|
15
|
-
|
16
|
-
context "HttpConnection" do
|
17
|
-
|
18
|
-
it "respects the proxy configuration" do
|
19
|
-
service = Dogapi::APIService.new("api_key", "app_key")
|
20
|
-
|
21
|
-
service.connect do |conn|
|
22
|
-
expect(conn.proxy_address).to be(nil)
|
23
|
-
expect(conn.proxy_port).to be(nil)
|
24
|
-
end
|
25
|
-
|
26
|
-
ENV["http_proxy"] = "https://www.proxy.com:443"
|
27
|
-
|
28
|
-
service.connect do |conn|
|
29
|
-
expect(conn.proxy_address).to eq "www.proxy.com"
|
30
|
-
expect(conn.proxy_port).to eq 443
|
31
|
-
end
|
32
|
-
|
33
|
-
ENV["http_proxy"] = nil
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
end # end Common
|
data/spec/facade_spec.rb
DELETED
@@ -1,166 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "Facade", :vcr => true do
|
4
|
-
|
5
|
-
before(:all) do
|
6
|
-
@api_key = ENV["DATADOG_API_KEY"]
|
7
|
-
@app_key = ENV["DATADOG_APP_KEY"]
|
8
|
-
@job_number = ENV['TRAVIS_JOB_NUMBER'] || '1'
|
9
|
-
@dog = Dogapi::Client.new(@api_key, @app_key)
|
10
|
-
end
|
11
|
-
|
12
|
-
context "Client" do
|
13
|
-
|
14
|
-
before(:each) do
|
15
|
-
@dogmock = Dogapi::Client.new(@api_key, @app_key)
|
16
|
-
@service = @dogmock.instance_variable_get(:@metric_svc)
|
17
|
-
@service.instance_variable_set(:@uploaded, Array.new)
|
18
|
-
def @service.upload payload
|
19
|
-
@uploaded << payload
|
20
|
-
return 200, {}
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
it "emit_point passes data" do
|
25
|
-
@dogmock.emit_point("metric.name", 0, :host => "myhost")
|
26
|
-
|
27
|
-
uploaded = @service.instance_variable_get(:@uploaded)
|
28
|
-
expect(uploaded.length).to eq 1
|
29
|
-
series = uploaded.first
|
30
|
-
expect(series.class).to eq Array
|
31
|
-
expect(series[0][:metric]).to eq "metric.name"
|
32
|
-
expect(series[0][:points][0][1]).to eq 0
|
33
|
-
expect(series[0][:host]).to eq "myhost"
|
34
|
-
end
|
35
|
-
|
36
|
-
it "emit_point uses localhost default" do
|
37
|
-
@dogmock.emit_point("metric.name", 0)
|
38
|
-
|
39
|
-
uploaded = @service.instance_variable_get(:@uploaded)
|
40
|
-
series = uploaded.first
|
41
|
-
expect(series[0][:host]).to eq Dogapi.find_localhost
|
42
|
-
end
|
43
|
-
|
44
|
-
it "emit_point can pass nil host" do
|
45
|
-
@dogmock.emit_point("metric.name", 0, :host => nil)
|
46
|
-
|
47
|
-
uploaded = @service.instance_variable_get(:@uploaded)
|
48
|
-
series = uploaded.first
|
49
|
-
expect(series[0][:host]).to be_nil
|
50
|
-
end
|
51
|
-
|
52
|
-
it "emit_points can be batched" do
|
53
|
-
code, resp = @dogmock.batch_metrics do
|
54
|
-
@dogmock.emit_point("metric.name", 1, :type => 'counter')
|
55
|
-
@dogmock.emit_point("othermetric.name", 2, :type => 'counter')
|
56
|
-
end
|
57
|
-
expect(code).to eq 200
|
58
|
-
# Verify that we uploaded what we expected
|
59
|
-
uploaded = @service.instance_variable_get(:@uploaded)
|
60
|
-
expect(uploaded.length).to eq 1
|
61
|
-
series = uploaded.first
|
62
|
-
expect(series.class).to eq Array
|
63
|
-
expect(series[0][:metric]).to eq 'metric.name'
|
64
|
-
expect(series[0][:points][0][1]).to eq 1
|
65
|
-
expect(series[0][:type]).to eq 'counter'
|
66
|
-
expect(series[1][:metric]).to eq 'othermetric.name'
|
67
|
-
expect(series[1][:points][0][1]).to eq 2
|
68
|
-
expect(series[1][:type]).to eq 'counter'
|
69
|
-
|
70
|
-
# Verify that the buffer was correclty emptied
|
71
|
-
buffer = @service.instance_variable_get(:@buffer)
|
72
|
-
expect(buffer).to be nil
|
73
|
-
end
|
74
|
-
|
75
|
-
it "flushes the buffer even if an exception is raised" do
|
76
|
-
begin
|
77
|
-
@dogmock.batch_metrics do
|
78
|
-
@dogmock.emit_point("metric.name", 1, :type => 'counter')
|
79
|
-
raise "Oh no, something went wrong"
|
80
|
-
end
|
81
|
-
rescue
|
82
|
-
end
|
83
|
-
buffer = @service.instance_variable_get(:@buffer)
|
84
|
-
expect(buffer).to be nil
|
85
|
-
end
|
86
|
-
|
87
|
-
end
|
88
|
-
|
89
|
-
context "Events" do
|
90
|
-
|
91
|
-
it "emits events and retrieves them" do
|
92
|
-
now = Time.now()
|
93
|
-
|
94
|
-
# Tag the events with the build number, because Travis parallel testing
|
95
|
-
# can cause problems with the event stream
|
96
|
-
tags = ["test-run:#{@job_number}"]
|
97
|
-
|
98
|
-
now_ts = now
|
99
|
-
now_title = 'dogapi-rb end test title ' + now_ts.to_i.to_s
|
100
|
-
now_message = 'test message'
|
101
|
-
|
102
|
-
|
103
|
-
event = Dogapi::Event.new(now_message, :msg_title => now_title,
|
104
|
-
:date_happened => now_ts, :tags => tags)
|
105
|
-
|
106
|
-
code, resp = @dog.emit_event(event)
|
107
|
-
now_event_id = resp["event"]["id"]
|
108
|
-
sleep 8
|
109
|
-
code, resp = @dog.get_event(now_event_id)
|
110
|
-
expect(resp['event']).not_to be_nil
|
111
|
-
expect(resp['event']['text']).to eq(now_message)
|
112
|
-
end
|
113
|
-
|
114
|
-
it "emits events with specified priority" do
|
115
|
-
event = Dogapi::Event.new('test message', :msg_title => 'title', :date_happened => Time.now(), :priority => "low")
|
116
|
-
code, resp = @dog.emit_event(event)
|
117
|
-
low_event_id = resp["event"]["id"]
|
118
|
-
sleep 8
|
119
|
-
code, resp = @dog.get_event(low_event_id)
|
120
|
-
expect(resp['event']).not_to be_nil
|
121
|
-
low_event = resp['event']
|
122
|
-
expect(low_event['priority']).to eq("low")
|
123
|
-
end
|
124
|
-
|
125
|
-
it "emits aggregate events" do
|
126
|
-
now = Time.now()
|
127
|
-
code, resp = @dog.emit_event(Dogapi::Event.new("Testing Aggregation (first)", :aggregation_key => now.to_i))
|
128
|
-
first = resp["event"]["id"]
|
129
|
-
code, resp = @dog.emit_event(Dogapi::Event.new("Testing Aggregation (second)", :aggregation_key => now.to_i))
|
130
|
-
second = resp["event"]["id"]
|
131
|
-
sleep 8
|
132
|
-
code, resp = @dog.get_event(first)
|
133
|
-
expect(resp["event"]).not_to be_nil
|
134
|
-
code, resp = @dog.get_event(second)
|
135
|
-
expect(resp["event"]).not_to be_nil
|
136
|
-
end
|
137
|
-
|
138
|
-
end
|
139
|
-
|
140
|
-
context "Tags" do
|
141
|
-
it "adds, updates and detaches tags" do
|
142
|
-
hostname = "test.tag.host"
|
143
|
-
|
144
|
-
@dog.emit_point('test.tag.metric', 1, :host => hostname)
|
145
|
-
sleep 5
|
146
|
-
@dog.detach_tags(hostname)
|
147
|
-
code, resp = @dog.host_tags(hostname)
|
148
|
-
expect(resp["tags"]).to be_empty
|
149
|
-
|
150
|
-
@dog.add_tags(hostname, ['test.tag.1', 'test.tag.2'])
|
151
|
-
code, resp = @dog.host_tags(hostname)
|
152
|
-
new_tags = resp["tags"]
|
153
|
-
expect(new_tags).to match_array(['test.tag.1', 'test.tag.2'])
|
154
|
-
|
155
|
-
@dog.add_tags(hostname, ['test.tag.3'])
|
156
|
-
code, resp = @dog.host_tags(hostname)
|
157
|
-
new_tags = resp["tags"]
|
158
|
-
expect(new_tags).to match_array(['test.tag.1', 'test.tag.2', 'test.tag.3'])
|
159
|
-
|
160
|
-
@dog.detach_tags(hostname)
|
161
|
-
code, resp = @dog.host_tags(hostname)
|
162
|
-
expect(resp["tags"]).to be_empty
|
163
|
-
end
|
164
|
-
end
|
165
|
-
|
166
|
-
end
|
@@ -1,114 +0,0 @@
|
|
1
|
-
---
|
2
|
-
http_interactions:
|
3
|
-
- request:
|
4
|
-
method: post
|
5
|
-
uri: https://app.datadoghq.com/api/v1/alert?api_key=<DATADOG_API_KEY>&application_key=<DATADOG_APP_KEY>
|
6
|
-
body:
|
7
|
-
encoding: UTF-8
|
8
|
-
string: '{"query":"avg(last_10m):avg:test.metric.metric{host:test.metric.host}
|
9
|
-
> 5"}'
|
10
|
-
headers:
|
11
|
-
Accept-Encoding:
|
12
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
13
|
-
Accept:
|
14
|
-
- "*/*"
|
15
|
-
User-Agent:
|
16
|
-
- Ruby
|
17
|
-
Content-Type:
|
18
|
-
- application/json
|
19
|
-
response:
|
20
|
-
status:
|
21
|
-
code: 200
|
22
|
-
message: OK
|
23
|
-
headers:
|
24
|
-
Cache-Control:
|
25
|
-
- no-cache
|
26
|
-
Content-Type:
|
27
|
-
- application/json; charset=utf-8
|
28
|
-
Date:
|
29
|
-
- Mon, 11 Apr 2016 17:56:53 GMT
|
30
|
-
Dd-Pool:
|
31
|
-
- dogweb_sameorig
|
32
|
-
Pragma:
|
33
|
-
- no-cache
|
34
|
-
Set-Cookie:
|
35
|
-
- DD-PSHARD=0; expires="Mon, 18-Apr-2016 17:56:53 GMT"; Max-Age=604800; Path=/
|
36
|
-
Strict-Transport-Security:
|
37
|
-
- max-age=15724800;
|
38
|
-
Vary:
|
39
|
-
- Accept-Encoding
|
40
|
-
X-Content-Type-Options:
|
41
|
-
- nosniff
|
42
|
-
X-Dd-Debug:
|
43
|
-
- ODPlWrOS4MEcZXXD/7SPngU2RDdboMc4yDiHiqJBZz0=
|
44
|
-
X-Dd-Version:
|
45
|
-
- '33.3404'
|
46
|
-
X-Frame-Options:
|
47
|
-
- SAMEORIGIN
|
48
|
-
Content-Length:
|
49
|
-
- '298'
|
50
|
-
Connection:
|
51
|
-
- keep-alive
|
52
|
-
body:
|
53
|
-
encoding: UTF-8
|
54
|
-
string: '{"event_object":"8ee60aa761d2c9f71a2c1ba4979a0363","notify_audit":true,"timeout_h":null,"silenced":false,"query":"avg(last_10m):avg:test.metric.metric{host:test.metric.host}
|
55
|
-
> 5","message":"","id":552995,"name":"**test.metric.metric** over **host:test.metric.host**
|
56
|
-
was **> 5.0** on average during the **last 10m**.","no_data_timeframe":false,"creator":2575,"notify_no_data":false,"renotify_interval":null,"state":"No
|
57
|
-
Data","escalation_message":"","silenced_timeout_ts":null}'
|
58
|
-
http_version:
|
59
|
-
recorded_at: Mon, 11 Apr 2016 17:56:53 GMT
|
60
|
-
- request:
|
61
|
-
method: delete
|
62
|
-
uri: https://app.datadoghq.com/api/v1/alert/552995?api_key=<DATADOG_API_KEY>&application_key=<DATADOG_APP_KEY>
|
63
|
-
body:
|
64
|
-
encoding: US-ASCII
|
65
|
-
string: ''
|
66
|
-
headers:
|
67
|
-
Accept-Encoding:
|
68
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
69
|
-
Accept:
|
70
|
-
- "*/*"
|
71
|
-
User-Agent:
|
72
|
-
- Ruby
|
73
|
-
response:
|
74
|
-
status:
|
75
|
-
code: 200
|
76
|
-
message: OK
|
77
|
-
headers:
|
78
|
-
Cache-Control:
|
79
|
-
- no-cache
|
80
|
-
Content-Type:
|
81
|
-
- application/json; charset=utf-8
|
82
|
-
Date:
|
83
|
-
- Mon, 11 Apr 2016 17:56:53 GMT
|
84
|
-
Dd-Pool:
|
85
|
-
- dogweb_sameorig
|
86
|
-
Pragma:
|
87
|
-
- no-cache
|
88
|
-
Set-Cookie:
|
89
|
-
- DD-PSHARD=0; expires="Mon, 18-Apr-2016 17:56:53 GMT"; Max-Age=604800; Path=/
|
90
|
-
Strict-Transport-Security:
|
91
|
-
- max-age=15724800;
|
92
|
-
Vary:
|
93
|
-
- Accept-Encoding
|
94
|
-
X-Content-Type-Options:
|
95
|
-
- nosniff
|
96
|
-
X-Dd-Debug:
|
97
|
-
- avwu1L56XulIB/cxbiNxDBj6ZA7aKJvxR5yfoq2OTaw=
|
98
|
-
X-Dd-Version:
|
99
|
-
- '33.3404'
|
100
|
-
X-Frame-Options:
|
101
|
-
- SAMEORIGIN
|
102
|
-
Content-Length:
|
103
|
-
- '288'
|
104
|
-
Connection:
|
105
|
-
- keep-alive
|
106
|
-
body:
|
107
|
-
encoding: UTF-8
|
108
|
-
string: '{"event_object":"8ee60aa761d2c9f71a2c1ba4979a0363","notify_audit":true,"timeout_h":null,"silenced":false,"query":"avg(last_10m):avg:test.metric.metric{host:test.metric.host}
|
109
|
-
> 5","message":"","name":"**test.metric.metric** over **host:test.metric.host**
|
110
|
-
was **> 5.0** on average during the **last 10m**.","no_data_timeframe":false,"creator":2575,"notify_no_data":false,"renotify_interval":null,"state":"No
|
111
|
-
Data","escalation_message":"","silenced_timeout_ts":null}'
|
112
|
-
http_version:
|
113
|
-
recorded_at: Mon, 11 Apr 2016 17:56:53 GMT
|
114
|
-
recorded_with: VCR 2.9.3
|