dogapi-demo 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 +7 -0
- data/.gitignore +10 -0
- data/.rspec +2 -0
- data/.tailor +106 -0
- data/.travis.yml +8 -0
- data/CHANGELOG.md +157 -0
- data/Gemfile +16 -0
- data/LICENSE +25 -0
- data/README.rdoc +143 -0
- data/Rakefile +50 -0
- data/dogapi-demo.gemspec +32 -0
- data/examples/Capfile +19 -0
- data/examples/custom_event.rb +37 -0
- data/examples/custom_metric.rb +35 -0
- data/lib/capistrano/README.md +13 -0
- data/lib/capistrano/datadog.rb +125 -0
- data/lib/capistrano/datadog/v2.rb +74 -0
- data/lib/capistrano/datadog/v3.rb +64 -0
- data/lib/dogapi-demo.rb +5 -0
- data/lib/dogapi-demo/common.rb +168 -0
- data/lib/dogapi-demo/event.rb +129 -0
- data/lib/dogapi-demo/facade.rb +475 -0
- data/lib/dogapi-demo/metric.rb +34 -0
- data/lib/dogapi-demo/v1.rb +13 -0
- data/lib/dogapi-demo/v1/alert.rb +112 -0
- data/lib/dogapi-demo/v1/comment.rb +62 -0
- data/lib/dogapi-demo/v1/dash.rb +94 -0
- data/lib/dogapi-demo/v1/embed.rb +106 -0
- data/lib/dogapi-demo/v1/event.rb +101 -0
- data/lib/dogapi-demo/v1/metric.rb +118 -0
- data/lib/dogapi-demo/v1/monitor.rb +264 -0
- data/lib/dogapi-demo/v1/screenboard.rb +110 -0
- data/lib/dogapi-demo/v1/search.rb +27 -0
- data/lib/dogapi-demo/v1/service_check.rb +32 -0
- data/lib/dogapi-demo/v1/snapshot.rb +30 -0
- data/lib/dogapi-demo/v1/tag.rb +141 -0
- data/lib/dogapi-demo/v1/user.rb +113 -0
- data/lib/dogapi-demo/version.rb +3 -0
- data/spec/alerts_spec.rb +33 -0
- data/spec/common_spec.rb +37 -0
- data/spec/facade_spec.rb +166 -0
- data/spec/spec_helper.rb +30 -0
- data/spec/support/cassettes/Alerts/create/returns_HTTP_code_200.yml +114 -0
- data/spec/support/cassettes/Alerts/create/returns_a_valid_event_ID.yml +114 -0
- data/spec/support/cassettes/Alerts/create/returns_the_same_query_as_sent.yml +114 -0
- data/spec/support/cassettes/Facade/Events/emits_aggregate_events.yml +193 -0
- data/spec/support/cassettes/Facade/Events/emits_events_and_retrieves_them.yml +100 -0
- data/spec/support/cassettes/Facade/Events/emits_events_with_specified_priority.yml +98 -0
- data/spec/support/cassettes/Facade/Tags/adds_updates_and_detaches_tags.yml +442 -0
- data/tests/test_alerts.rb +38 -0
- data/tests/test_base.rb +30 -0
- data/tests/test_client.rb +23 -0
- data/tests/test_comments.rb +39 -0
- data/tests/test_dashes.rb +85 -0
- data/tests/test_embed.rb +194 -0
- data/tests/test_monitors.rb +192 -0
- data/tests/test_screenboard.rb +90 -0
- data/tests/test_search.rb +20 -0
- data/tests/test_snapshot.rb +28 -0
- data/tests/test_users.rb +65 -0
- metadata +178 -0
@@ -0,0 +1,90 @@
|
|
1
|
+
require 'dogapi'
|
2
|
+
require 'time'
|
3
|
+
require 'test_base.rb'
|
4
|
+
require 'open-uri'
|
5
|
+
|
6
|
+
class TestScreenboard < Minitest::Test
|
7
|
+
include TestBase
|
8
|
+
|
9
|
+
def test_screenboard
|
10
|
+
dog = Dogapi::Client.new(@api_key, @app_key)
|
11
|
+
|
12
|
+
board = {
|
13
|
+
"width" => 1024,
|
14
|
+
"height" => 768,
|
15
|
+
"board_title" => "dogapi-rb test",
|
16
|
+
"widgets" => [
|
17
|
+
{
|
18
|
+
"type" => "event_stream",
|
19
|
+
"title" => false,
|
20
|
+
"height" => 57,
|
21
|
+
"width" => 59,
|
22
|
+
"y" => 18,
|
23
|
+
"x" => 84,
|
24
|
+
"query" => "tags:release",
|
25
|
+
"timeframe" => "1w"
|
26
|
+
},
|
27
|
+
{
|
28
|
+
"type" => "image",
|
29
|
+
"height" => 20,
|
30
|
+
"width" => 32,
|
31
|
+
"y" => 7,
|
32
|
+
"x" => 32,
|
33
|
+
"url" => "http://path/to/image.jpg"
|
34
|
+
}
|
35
|
+
]
|
36
|
+
}
|
37
|
+
|
38
|
+
updated_board = {
|
39
|
+
"width" => 1024,
|
40
|
+
"height" => 768,
|
41
|
+
"board_title" => "dogapi test",
|
42
|
+
"widgets" => [
|
43
|
+
{
|
44
|
+
"type" => "image",
|
45
|
+
"height" => 20,
|
46
|
+
"width" => 32,
|
47
|
+
"y" => 7,
|
48
|
+
"x" => 32,
|
49
|
+
"url" => "http://path/to/image.jpg"
|
50
|
+
}
|
51
|
+
]
|
52
|
+
}
|
53
|
+
|
54
|
+
status, result = dog.create_screenboard(board)
|
55
|
+
assert_equal status, "200", "invalid HTTP response => #{status}"
|
56
|
+
assert result["widgets"] == board["widgets"]
|
57
|
+
|
58
|
+
status, result = dog.get_screenboard(result["id"])
|
59
|
+
assert_equal status, "200", "invalid HTTP response => #{status}"
|
60
|
+
assert result["widgets"] == board["widgets"]
|
61
|
+
|
62
|
+
status, result = dog.update_screenboard(result["id"], updated_board)
|
63
|
+
assert_equal status, "200", "invalid HTTP response => #{status}"
|
64
|
+
assert result["widgets"] == updated_board["widgets"]
|
65
|
+
|
66
|
+
status, share_result = dog.share_screenboard(result["id"])
|
67
|
+
assert_equal status, "200", "invalid HTTP response => #{status}"
|
68
|
+
assert share_result["board_id"] == result["id"]
|
69
|
+
|
70
|
+
open(share_result["public_url"]) do |f|
|
71
|
+
assert_equal f.status.first, "200", "invalid HTTP response => #{status}"
|
72
|
+
end
|
73
|
+
|
74
|
+
status, revoke_result = dog.revoke_screenboard(result["id"])
|
75
|
+
assert_equal status, "200", "invalid HTTP response => #{status}"
|
76
|
+
|
77
|
+
ex = assert_raises OpenURI::HTTPError do
|
78
|
+
open(share_result["public_url"])
|
79
|
+
end
|
80
|
+
assert_equal ex.message, "404 Not Found"
|
81
|
+
|
82
|
+
status, del_result = dog.delete_screenboard(result["id"])
|
83
|
+
assert_equal status, "200", "invalid HTTP response => #{status}"
|
84
|
+
assert del_result["id"] == result["id"]
|
85
|
+
|
86
|
+
status, result = dog.get_all_screenboards()
|
87
|
+
assert_equal status, "200", "invalid HTTP response => #{status}"
|
88
|
+
|
89
|
+
end
|
90
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'dogapi'
|
2
|
+
require 'time'
|
3
|
+
require 'test_base.rb'
|
4
|
+
|
5
|
+
class TestSearch < Minitest::Test
|
6
|
+
include TestBase
|
7
|
+
|
8
|
+
def test_search
|
9
|
+
dog = Dogapi::Client.new(@api_key, @app_key)
|
10
|
+
|
11
|
+
facets = ["hosts", "metrics"]
|
12
|
+
facets.each do |facet|
|
13
|
+
status, results_body = dog.search("#{facet}:foo")
|
14
|
+
results = results_body["results"]
|
15
|
+
assert_equal status, "200", "failed search #{facet} facet"
|
16
|
+
assert results[facet].kind_of?(Array), "#{facet} facet doesnt exist"
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'dogapi'
|
2
|
+
require 'time'
|
3
|
+
require 'test_base.rb'
|
4
|
+
|
5
|
+
class TestSnapshot < Minitest::Test
|
6
|
+
include TestBase
|
7
|
+
|
8
|
+
def test_snapshot
|
9
|
+
dog = Dogapi::Client.new(@api_key, @app_key)
|
10
|
+
|
11
|
+
metric_query = "system.load.1{*}"
|
12
|
+
event_query = "*"
|
13
|
+
end_ts = Time.now().to_i
|
14
|
+
start_ts = end_ts - 60 * 60 # go back 1 hour
|
15
|
+
|
16
|
+
# Try without an event query
|
17
|
+
status, result = dog.graph_snapshot(metric_query, start_ts, end_ts)
|
18
|
+
assert_equal status, "200", "invalid HTTP response: #{status}"
|
19
|
+
assert result["metric_query"] = metric_query
|
20
|
+
|
21
|
+
# Try with an event query
|
22
|
+
status, result = dog.graph_snapshot(metric_query, start_ts, end_ts,
|
23
|
+
event_query=event_query)
|
24
|
+
assert_equal status, "200", "invalid HTTP response: #{status}"
|
25
|
+
assert result["metric_query"] = metric_query
|
26
|
+
assert result["event_query"] = event_query
|
27
|
+
end
|
28
|
+
end
|
data/tests/test_users.rb
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'dogapi'
|
2
|
+
require 'time'
|
3
|
+
require 'test_base.rb'
|
4
|
+
|
5
|
+
class TestUsers < Minitest::Test
|
6
|
+
include TestBase
|
7
|
+
|
8
|
+
def test_users
|
9
|
+
dog = Dogapi::Client.new(@api_key, @app_key)
|
10
|
+
|
11
|
+
# user invite (deprecated)
|
12
|
+
emails = ["notarealperson@datadoghq.com", "alsoreallyfake@datadoghq.com"]
|
13
|
+
|
14
|
+
invited = dog.invite(emails)
|
15
|
+
assert_equal emails, invited[1]["emails"], invited
|
16
|
+
|
17
|
+
# user CRUD
|
18
|
+
handle = 'user@test.com'
|
19
|
+
name = 'Test User'
|
20
|
+
alternate_name = 'Test User Alt'
|
21
|
+
alternate_email = 'user+1@test.com'
|
22
|
+
|
23
|
+
# test create user
|
24
|
+
# the user might already exist
|
25
|
+
dog.create_user({
|
26
|
+
'handle' => handle,
|
27
|
+
'name' => name,
|
28
|
+
})
|
29
|
+
|
30
|
+
# reset user to original status
|
31
|
+
status, res = dog.update_user(handle, {
|
32
|
+
'name' => name,
|
33
|
+
'email' => handle,
|
34
|
+
'disabled' => false,
|
35
|
+
})
|
36
|
+
assert_equal handle, res['user']['handle']
|
37
|
+
assert_equal name, res['user']['name']
|
38
|
+
assert_equal handle, res['user']['email']
|
39
|
+
|
40
|
+
# test get
|
41
|
+
status, res = dog.get_user(handle)
|
42
|
+
assert_equal handle, res['user']['handle']
|
43
|
+
|
44
|
+
# test update user
|
45
|
+
status, res = dog.update_user(handle, {
|
46
|
+
'name' => alternate_name,
|
47
|
+
'email' => alternate_email,
|
48
|
+
})
|
49
|
+
assert_equal handle, res['user']['handle']
|
50
|
+
assert_equal alternate_name, res['user']['name']
|
51
|
+
assert_equal alternate_email, res['user']['email']
|
52
|
+
|
53
|
+
# test disable user
|
54
|
+
status, res = dog.disable_user(handle)
|
55
|
+
assert_equal '200', status
|
56
|
+
|
57
|
+
# test get all users
|
58
|
+
status, res = dog.get_all_users()
|
59
|
+
assert_equal true, res['users'].length >= 1
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
end
|
metadata
ADDED
@@ -0,0 +1,178 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dogapi-demo
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Datadog, Inc.
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-07-10 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: multi_json
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.3'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rdoc
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: Ruby bindings for Datadog's API
|
70
|
+
email:
|
71
|
+
- packages@datadoghq.com
|
72
|
+
executables: []
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files:
|
75
|
+
- README.rdoc
|
76
|
+
files:
|
77
|
+
- ".gitignore"
|
78
|
+
- ".rspec"
|
79
|
+
- ".tailor"
|
80
|
+
- ".travis.yml"
|
81
|
+
- CHANGELOG.md
|
82
|
+
- Gemfile
|
83
|
+
- LICENSE
|
84
|
+
- README.rdoc
|
85
|
+
- Rakefile
|
86
|
+
- dogapi-demo.gemspec
|
87
|
+
- examples/Capfile
|
88
|
+
- examples/custom_event.rb
|
89
|
+
- examples/custom_metric.rb
|
90
|
+
- lib/capistrano/README.md
|
91
|
+
- lib/capistrano/datadog.rb
|
92
|
+
- lib/capistrano/datadog/v2.rb
|
93
|
+
- lib/capistrano/datadog/v3.rb
|
94
|
+
- lib/dogapi-demo.rb
|
95
|
+
- lib/dogapi-demo/common.rb
|
96
|
+
- lib/dogapi-demo/event.rb
|
97
|
+
- lib/dogapi-demo/facade.rb
|
98
|
+
- lib/dogapi-demo/metric.rb
|
99
|
+
- lib/dogapi-demo/v1.rb
|
100
|
+
- lib/dogapi-demo/v1/alert.rb
|
101
|
+
- lib/dogapi-demo/v1/comment.rb
|
102
|
+
- lib/dogapi-demo/v1/dash.rb
|
103
|
+
- lib/dogapi-demo/v1/embed.rb
|
104
|
+
- lib/dogapi-demo/v1/event.rb
|
105
|
+
- lib/dogapi-demo/v1/metric.rb
|
106
|
+
- lib/dogapi-demo/v1/monitor.rb
|
107
|
+
- lib/dogapi-demo/v1/screenboard.rb
|
108
|
+
- lib/dogapi-demo/v1/search.rb
|
109
|
+
- lib/dogapi-demo/v1/service_check.rb
|
110
|
+
- lib/dogapi-demo/v1/snapshot.rb
|
111
|
+
- lib/dogapi-demo/v1/tag.rb
|
112
|
+
- lib/dogapi-demo/v1/user.rb
|
113
|
+
- lib/dogapi-demo/version.rb
|
114
|
+
- spec/alerts_spec.rb
|
115
|
+
- spec/common_spec.rb
|
116
|
+
- spec/facade_spec.rb
|
117
|
+
- spec/spec_helper.rb
|
118
|
+
- spec/support/cassettes/Alerts/create/returns_HTTP_code_200.yml
|
119
|
+
- spec/support/cassettes/Alerts/create/returns_a_valid_event_ID.yml
|
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
|
136
|
+
homepage: http://datadoghq.com/
|
137
|
+
licenses:
|
138
|
+
- BSD
|
139
|
+
metadata: {}
|
140
|
+
post_install_message:
|
141
|
+
rdoc_options:
|
142
|
+
- "--title"
|
143
|
+
- DogAPI -- Datadog Client
|
144
|
+
- "--main"
|
145
|
+
- README.rdoc
|
146
|
+
- "--line-numbers"
|
147
|
+
- "--inline-source"
|
148
|
+
require_paths:
|
149
|
+
- lib
|
150
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
151
|
+
requirements:
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '0'
|
155
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
requirements: []
|
161
|
+
rubyforge_project:
|
162
|
+
rubygems_version: 2.4.3
|
163
|
+
signing_key:
|
164
|
+
specification_version: 4
|
165
|
+
summary: Ruby bindings for Datadog's API
|
166
|
+
test_files:
|
167
|
+
- spec/alerts_spec.rb
|
168
|
+
- spec/common_spec.rb
|
169
|
+
- spec/facade_spec.rb
|
170
|
+
- spec/spec_helper.rb
|
171
|
+
- spec/support/cassettes/Alerts/create/returns_HTTP_code_200.yml
|
172
|
+
- spec/support/cassettes/Alerts/create/returns_a_valid_event_ID.yml
|
173
|
+
- spec/support/cassettes/Alerts/create/returns_the_same_query_as_sent.yml
|
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
|
+
has_rdoc: true
|