dogapi 1.40.0 → 1.45.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/.azure-pipelines/all.yml +36 -8
- data/.rubocop.yml +4 -0
- data/.rubocop_todo.yml +1 -0
- data/CHANGELOG.md +24 -0
- data/Gemfile +1 -3
- data/Gemfile_1.9 +1 -3
- data/RELEASING.md +1 -1
- data/lib/capistrano/datadog.rb +2 -2
- data/lib/capistrano/datadog/v2.rb +2 -2
- data/lib/capistrano/datadog/v3.rb +3 -2
- data/lib/dogapi/common.rb +29 -12
- data/lib/dogapi/facade.rb +55 -29
- data/lib/dogapi/v1.rb +1 -0
- data/lib/dogapi/v1/alert.rb +0 -2
- data/lib/dogapi/v1/aws_integration.rb +0 -2
- data/lib/dogapi/v1/aws_logs.rb +0 -2
- data/lib/dogapi/v1/azure_integration.rb +0 -2
- data/lib/dogapi/v1/comment.rb +0 -2
- data/lib/dogapi/v1/dash.rb +0 -2
- data/lib/dogapi/v1/dashboard.rb +12 -2
- data/lib/dogapi/v1/dashboard_list.rb +0 -2
- data/lib/dogapi/v1/embed.rb +0 -2
- data/lib/dogapi/v1/event.rb +0 -2
- data/lib/dogapi/v1/gcp_integration.rb +0 -2
- data/lib/dogapi/v1/hosts.rb +0 -2
- data/lib/dogapi/v1/integration.rb +0 -2
- data/lib/dogapi/v1/logs_pipeline.rb +41 -0
- data/lib/dogapi/v1/metadata.rb +0 -2
- data/lib/dogapi/v1/metric.rb +0 -2
- data/lib/dogapi/v1/monitor.rb +0 -2
- data/lib/dogapi/v1/screenboard.rb +0 -2
- data/lib/dogapi/v1/search.rb +0 -2
- data/lib/dogapi/v1/service_check.rb +0 -2
- data/lib/dogapi/v1/service_level_objective.rb +3 -1
- data/lib/dogapi/v1/snapshot.rb +0 -2
- data/lib/dogapi/v1/synthetics.rb +3 -1
- data/lib/dogapi/v1/tag.rb +0 -2
- data/lib/dogapi/v1/usage.rb +0 -2
- data/lib/dogapi/v1/user.rb +0 -2
- data/lib/dogapi/v2/dashboard_list.rb +0 -2
- data/lib/dogapi/version.rb +1 -1
- data/spec/integration/dashboard_spec.rb +11 -1
- data/spec/integration/logs_pipeline_spec.rb +43 -0
- data/spec/spec_helper.rb +13 -1
- data/spec/unit/common_spec.rb +19 -10
- metadata +8 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ef3fbebc71af23718db2e177c11400648e47e0e770c8783021a8e7a1b7df099
|
4
|
+
data.tar.gz: 59ef0c8d5c187e7161a25166b468fa91c640ab568dd22992aa037b38c7461ff1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 48239d6fd49a735c74eb4c95f97093c0e599a8d11d868e784cb08ce1a96ce0a6da6b942e78afadc870fcb7e09bf0b53205c0517d502029cc17d3c3a378d5bbfa
|
7
|
+
data.tar.gz: 658b9c7f91b18e7744b1d3761e6e1d5212e527f293d09ba4a00f3303602262c46cf0c5743ec317e4bdb353286a1c94a9de51b86285b9513f310e7f6e72f4ca0c
|
data/.azure-pipelines/all.yml
CHANGED
@@ -9,10 +9,36 @@ pr:
|
|
9
9
|
include:
|
10
10
|
- master
|
11
11
|
|
12
|
+
resources:
|
13
|
+
containers:
|
14
|
+
- container: datadog-agent
|
15
|
+
image: datadog/agent:7
|
16
|
+
options: --health-cmd="exit 0" --health-interval=1s
|
17
|
+
ports:
|
18
|
+
- 8125:8125
|
19
|
+
- 8126:8126/tcp
|
20
|
+
env:
|
21
|
+
DD_API_KEY: $(ddAPIKey)
|
22
|
+
DD_APM_ENABLED: "true"
|
23
|
+
DD_APM_NON_LOCAL_TRAFFIC: "true"
|
24
|
+
DD_LOGS_ENABLED: "true"
|
25
|
+
DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL: "true"
|
26
|
+
DD_AC_EXCLUDE: "name:datadog-agent"
|
27
|
+
volumes:
|
28
|
+
- /var/run/docker.sock:/var/run/docker.sock:ro
|
29
|
+
- /proc/:/host/proc/:ro
|
30
|
+
- /sys/fs/cgroup/:/host/sys/fs/cgroup:ro
|
31
|
+
|
12
32
|
jobs:
|
13
33
|
- job: UnitTests
|
14
34
|
pool:
|
15
35
|
vmImage: "Ubuntu-16.04"
|
36
|
+
container:
|
37
|
+
image: ruby:$(RUBY_VERSION)
|
38
|
+
options: >-
|
39
|
+
-l com.datadoghq.ad.logs="[{\"source\": \"Azure Pipeline\", \"service\": \"dogapi-rb\"}]"
|
40
|
+
services:
|
41
|
+
datadog-agent: datadog-agent
|
16
42
|
strategy:
|
17
43
|
matrix:
|
18
44
|
Rb24:
|
@@ -31,17 +57,19 @@ jobs:
|
|
31
57
|
RUBY_VERSION: '2.6'
|
32
58
|
TASK: rubocop
|
33
59
|
steps:
|
34
|
-
-
|
35
|
-
displayName: Use Ruby $(RUBY_VERSION)
|
36
|
-
inputs:
|
37
|
-
versionSpec: $(RUBY_VERSION)
|
38
|
-
addToPath: true
|
39
|
-
- script: |
|
40
|
-
gem install bundler
|
41
|
-
bundle install --retry=3 --jobs=4
|
60
|
+
- script: bundle install --retry=3 --jobs=4
|
42
61
|
displayName: 'bundle install'
|
62
|
+
env:
|
63
|
+
GEM_HOME: '~/.gem'
|
43
64
|
- script: bundle exec rake $(TASK)
|
44
65
|
displayName: Run $(TASK) via bundle
|
66
|
+
env:
|
67
|
+
GEM_HOME: '~/.gem'
|
68
|
+
DD_AGENT_HOST: datadog-agent
|
69
|
+
DD_ENV: ci
|
70
|
+
DD_SERVICE: dogapi-rb
|
71
|
+
DD_TAGS: "team:integration-tools-and-libraries,runtime:ruby-$(RUBY_VERSION),ci.job.name:$(System.JobName),matrix:$(TASK)"
|
72
|
+
DD_TRACE_ANALYTICS_ENABLED: "true"
|
45
73
|
- job: TestRuby19
|
46
74
|
pool:
|
47
75
|
vmImage: "Ubuntu-16.04"
|
data/.rubocop.yml
CHANGED
data/.rubocop_todo.yml
CHANGED
@@ -241,6 +241,7 @@ Style/AccessorMethodName:
|
|
241
241
|
- 'lib/dogapi/v1/dash.rb'
|
242
242
|
- 'lib/dogapi/v1/dashboard.rb'
|
243
243
|
- 'lib/dogapi/v1/embed.rb'
|
244
|
+
- 'lib/dogapi/v1/logs_pipeline.rb'
|
244
245
|
- 'lib/dogapi/v1/screenboard.rb'
|
245
246
|
- 'lib/dogapi/v1/synthetics.rb'
|
246
247
|
- 'lib/dogapi/v1/user.rb'
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,29 @@
|
|
1
1
|
# Changes
|
2
2
|
|
3
|
+
## 1.45.0 / 2021-01-27
|
4
|
+
|
5
|
+
* [Added] Read `datadog_host` cap variable for specifying Datadog API endpoint. See [#255](https://github.com/DataDog/dogapi-rb/pull/255).
|
6
|
+
* [Added] Added support for logs pipelines CRUD methods. See [#252](https://github.com/DataDog/dogapi-rb/pull/252). Thanks [hi-artem](https://github.com/hi-artem).
|
7
|
+
* [Fixed] Properly handle string response code. See [#254](https://github.com/DataDog/dogapi-rb/pull/254).
|
8
|
+
* [Fixed] Remove circular dependency. See [#253](https://github.com/DataDog/dogapi-rb/pull/253).
|
9
|
+
|
10
|
+
## 1.44.0 / 2020-12-10
|
11
|
+
|
12
|
+
* [Added] Allow skipping SSL verification. See [#246](https://github.com/DataDog/dogapi-rb/pull/246).
|
13
|
+
|
14
|
+
## 1.43.0 / 2020-12-07
|
15
|
+
|
16
|
+
* [Fixed] find_localhost: Try both `hostname` and `hostname -f` before raising. See [#242](https://github.com/DataDog/dogapi-rb/pull/242).
|
17
|
+
|
18
|
+
## 1.42.0 / 2020-09-17
|
19
|
+
|
20
|
+
* [Added] Allow dashboard creation / updates using Template Variable Presets. See [#238](https://github.com/DataDog/dogapi-rb/pull/238).
|
21
|
+
|
22
|
+
## 1.41.0 / 2020-07-27
|
23
|
+
|
24
|
+
* [Added] Improve user-agent header to include telemetry information. See [#235](https://github.com/DataDog/dogapi-rb/pull/235).
|
25
|
+
* [Added] Move setting hostname to end of method body in order to actually return it. See [#233](https://github.com/DataDog/dogapi-rb/pull/233).
|
26
|
+
|
3
27
|
## 1.40.0 / 2020-04-06
|
4
28
|
|
5
29
|
* [Added] Re-add service level objectives support. See [#224](https://github.com/DataDog/dogapi-rb/pull/224).
|
data/Gemfile
CHANGED
@@ -3,10 +3,8 @@ source 'https://rubygems.org'
|
|
3
3
|
gemspec
|
4
4
|
|
5
5
|
group :test do
|
6
|
+
gem 'ddtrace', git: 'https://github.com/datadog/dd-trace-rb'
|
6
7
|
gem 'rubocop', "~> 0.49.0"
|
7
|
-
# NOTE: rake < 12.3.3 is vulnerable to CVE-2020-8130, but we only use it as a test dependency
|
8
|
-
# and neither our users nor our CI is vulnerable in any way
|
9
|
-
gem 'rake', '>= 2.4.2'
|
10
8
|
gem 'rspec'
|
11
9
|
gem 'simplecov'
|
12
10
|
gem 'webmock'
|
data/Gemfile_1.9
CHANGED
@@ -4,10 +4,8 @@ gemspec
|
|
4
4
|
|
5
5
|
group :test do
|
6
6
|
gem 'rubocop', "~> 0.41.0"
|
7
|
-
# NOTE: rake < 12.3.3 is vulnerable to CVE-2020-8130, but we only use it as a test dependency
|
8
|
-
# and neither our users nor our CI is vulnerable in any way
|
9
|
-
gem 'rake', '>= 2.4.2'
|
10
7
|
gem 'rspec'
|
11
8
|
gem 'simplecov', "~> 0.11.2"
|
12
9
|
gem 'webmock'
|
10
|
+
gem 'crack', '<= 0.4.4'
|
13
11
|
end
|
data/RELEASING.md
CHANGED
@@ -43,4 +43,4 @@ Install [bundler](https://bundler.io/) and setup your RubyGems credentials:
|
|
43
43
|
1. Build the gem: `bundle exec gem build dogapi.gemspec`.
|
44
44
|
1. Push the gem: `bundle exec gem push dogapi-x.x.x.gem`.
|
45
45
|
1. Check that the [Ruby Gem is published](https://rubygems.org/gems/dogapi).
|
46
|
-
1. Bump the version again in `lib/dogapi/version.rb` to a dev version (e.g. `1.
|
46
|
+
1. Bump the version again in `lib/dogapi/version.rb` to a dev version (e.g. `1.42.0` -> `1.42.1.dev`), open a PR and merge it to master.
|
data/lib/capistrano/datadog.rb
CHANGED
@@ -28,10 +28,10 @@ module Capistrano
|
|
28
28
|
@cap_version
|
29
29
|
end
|
30
30
|
|
31
|
-
def self.submit(api_key, use_getlogin=true)
|
31
|
+
def self.submit(api_key, use_getlogin=true, endpoint=nil)
|
32
32
|
begin
|
33
33
|
if api_key
|
34
|
-
dog = Dogapi::Client.new(api_key)
|
34
|
+
dog = Dogapi::Client.new(api_key, nil, nil, nil, true, nil, endpoint, false)
|
35
35
|
reporter.report(use_getlogin).each do |event, hosts|
|
36
36
|
if hosts.size > 0
|
37
37
|
hosts.each do |host|
|
@@ -63,9 +63,9 @@ module Capistrano
|
|
63
63
|
desc 'Submit the tasks that have run to Datadog as events'
|
64
64
|
task :submit do |ns|
|
65
65
|
if variables[:use_getlogin].nil?
|
66
|
-
Capistrano::Datadog.submit variables[:datadog_api_key]
|
66
|
+
Capistrano::Datadog.submit variables[:datadog_api_key], true, variables[:datadog_host]
|
67
67
|
else
|
68
|
-
Capistrano::Datadog.submit variables[:datadog_api_key], variables[:use_getlogin]
|
68
|
+
Capistrano::Datadog.submit variables[:datadog_api_key], variables[:use_getlogin], variables[:datadog_host]
|
69
69
|
end
|
70
70
|
end
|
71
71
|
end
|
@@ -81,9 +81,10 @@ end
|
|
81
81
|
at_exit do
|
82
82
|
api_key = Capistrano::Configuration.env.fetch :datadog_api_key
|
83
83
|
use_getlogin = Capistrano::Configuration.env.fetch :use_getlogin
|
84
|
+
datadog_host = Capistrano::Configuration.env.fetch :datadog_host
|
84
85
|
if use_getlogin.nil?
|
85
|
-
Capistrano::Datadog.submit api_key
|
86
|
+
Capistrano::Datadog.submit api_key, true, datadog_host
|
86
87
|
else
|
87
|
-
Capistrano::Datadog.submit api_key, use_getlogin
|
88
|
+
Capistrano::Datadog.submit api_key, use_getlogin, datadog_host
|
88
89
|
end
|
89
90
|
end
|
data/lib/dogapi/common.rb
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
|
5
5
|
require 'cgi'
|
6
6
|
require 'net/https'
|
7
|
+
require 'rbconfig'
|
7
8
|
require 'socket'
|
8
9
|
require 'uri'
|
9
10
|
require 'English'
|
@@ -13,7 +14,16 @@ require 'multi_json'
|
|
13
14
|
require 'set'
|
14
15
|
require 'open3'
|
15
16
|
|
17
|
+
require 'dogapi/version'
|
18
|
+
|
16
19
|
module Dogapi
|
20
|
+
USER_AGENT = format(
|
21
|
+
'dogapi-rb/%<version>s (ruby %<ruver>s; os %<os>s; arch %<arch>s)',
|
22
|
+
version: VERSION,
|
23
|
+
ruver: RUBY_VERSION,
|
24
|
+
os: RbConfig::CONFIG['host_os'].downcase,
|
25
|
+
arch: RbConfig::CONFIG['host_cpu']
|
26
|
+
)
|
17
27
|
|
18
28
|
# Metadata class to hold the scope of an API call
|
19
29
|
class Scope
|
@@ -76,11 +86,12 @@ module Dogapi
|
|
76
86
|
# Superclass that deals with the details of communicating with the DataDog API
|
77
87
|
class APIService
|
78
88
|
attr_reader :api_key, :application_key
|
79
|
-
def initialize(api_key, application_key, silent=true, timeout=nil, endpoint=nil)
|
89
|
+
def initialize(api_key, application_key, silent=true, timeout=nil, endpoint=nil, skip_ssl_validation=false)
|
80
90
|
@api_key = api_key
|
81
91
|
@application_key = application_key
|
82
92
|
@api_host = endpoint || Dogapi.find_datadog_host()
|
83
93
|
@silent = silent
|
94
|
+
@skip_ssl_validation = skip_ssl_validation
|
84
95
|
@timeout = timeout || 5
|
85
96
|
end
|
86
97
|
|
@@ -100,6 +111,9 @@ module Dogapi
|
|
100
111
|
session = connection.new(uri.host, uri.port)
|
101
112
|
session.open_timeout = @timeout
|
102
113
|
session.use_ssl = uri.scheme == 'https'
|
114
|
+
if @skip_ssl_validation
|
115
|
+
session.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
116
|
+
end
|
103
117
|
session.start do |conn|
|
104
118
|
conn.read_timeout = @timeout
|
105
119
|
yield conn
|
@@ -138,11 +152,11 @@ module Dogapi
|
|
138
152
|
def prepare_request(method, url, params, body, send_json, with_app_key)
|
139
153
|
url_with_params = url + params
|
140
154
|
req = method.new(url_with_params)
|
155
|
+
req['User-Agent'] = USER_AGENT
|
141
156
|
unless should_set_api_and_app_keys_in_params?(url)
|
142
157
|
req['DD-API-KEY'] = @api_key
|
143
158
|
req['DD-APPLICATION-KEY'] = @application_key if with_app_key
|
144
159
|
end
|
145
|
-
|
146
160
|
if send_json
|
147
161
|
req.content_type = 'application/json'
|
148
162
|
req.body = MultiJson.dump(body)
|
@@ -169,7 +183,7 @@ module Dogapi
|
|
169
183
|
end
|
170
184
|
|
171
185
|
def handle_response(resp)
|
172
|
-
if resp.code == 204 || resp.body == '' || resp.body == 'null' || resp.body.nil?
|
186
|
+
if resp.code.to_i == 204 || resp.body == '' || resp.body == 'null' || resp.body.nil?
|
173
187
|
return resp.code, {}
|
174
188
|
end
|
175
189
|
begin
|
@@ -184,7 +198,7 @@ module Dogapi
|
|
184
198
|
def handle_redirect(conn, req, resp, retries=10)
|
185
199
|
req.uri = URI.parse(resp.header['location'])
|
186
200
|
new_response = conn.request(req)
|
187
|
-
if retries > 1 && new_response.code / 100 == 3
|
201
|
+
if retries > 1 && new_response.code.to_i / 100 == 3
|
188
202
|
new_response = handle_redirect(conn, req, new_response, retries - 1)
|
189
203
|
end
|
190
204
|
new_response
|
@@ -200,14 +214,17 @@ module Dogapi
|
|
200
214
|
@@hostname = nil
|
201
215
|
|
202
216
|
def Dogapi.find_localhost
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
217
|
+
return @@hostname if @@hostname
|
218
|
+
out, status = Open3.capture2('hostname', '-f', err: File::NULL)
|
219
|
+
unless status.exitstatus.zero?
|
220
|
+
begin
|
221
|
+
out = Addrinfo.getaddrinfo(Socket.gethostname, nil, nil, nil, nil, Socket::AI_CANONNAME).first.canonname
|
222
|
+
rescue SocketError
|
223
|
+
out, status = Open3.capture2('hostname', err: File::NULL)
|
224
|
+
raise SystemCallError, 'Both `hostname` and `hostname -f` failed.' unless status.exitstatus.zero?
|
225
|
+
end
|
226
|
+
end
|
227
|
+
@@hostname = out.strip
|
211
228
|
end
|
212
229
|
|
213
230
|
def Dogapi.find_proxy
|
data/lib/dogapi/facade.rb
CHANGED
@@ -13,7 +13,8 @@ module Dogapi
|
|
13
13
|
# See Dogapi::V2 for the thick underlying clients
|
14
14
|
class ClientV2
|
15
15
|
attr_accessor :datadog_host
|
16
|
-
def initialize(api_key, application_key=nil, host=nil, device=nil, silent=true,
|
16
|
+
def initialize(api_key, application_key=nil, host=nil, device=nil, silent=true,
|
17
|
+
timeout=nil, endpoint=nil, skip_ssl_validation=false)
|
17
18
|
|
18
19
|
if api_key
|
19
20
|
@api_key = api_key
|
@@ -27,7 +28,7 @@ module Dogapi
|
|
27
28
|
@device = device
|
28
29
|
|
29
30
|
@dashboard_list_service_v2 = Dogapi::V2::DashboardListService.new(
|
30
|
-
@api_key, @application_key, silent, timeout, @datadog_host
|
31
|
+
@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation
|
31
32
|
)
|
32
33
|
|
33
34
|
end
|
@@ -64,7 +65,7 @@ module Dogapi
|
|
64
65
|
# Support for API version 2.
|
65
66
|
|
66
67
|
# rubocop:disable Metrics/MethodLength, Metrics/LineLength
|
67
|
-
def initialize(api_key, application_key=nil, host=nil, device=nil, silent=true, timeout=nil, endpoint=nil)
|
68
|
+
def initialize(api_key, application_key=nil, host=nil, device=nil, silent=true, timeout=nil, endpoint=nil, skip_ssl_validation=false)
|
68
69
|
|
69
70
|
if api_key
|
70
71
|
@api_key = api_key
|
@@ -78,38 +79,39 @@ module Dogapi
|
|
78
79
|
@device = device
|
79
80
|
|
80
81
|
# FIXME: refactor to avoid all this code duplication
|
81
|
-
@metric_svc = Dogapi::V1::MetricService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
82
|
-
@event_svc = Dogapi::V1::EventService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
83
|
-
@tag_svc = Dogapi::V1::TagService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
84
|
-
@comment_svc = Dogapi::V1::CommentService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
85
|
-
@search_svc = Dogapi::V1::SearchService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
86
|
-
@dash_service = Dogapi::V1::DashService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
87
|
-
@dashboard_service = Dogapi::V1::DashboardService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
82
|
+
@metric_svc = Dogapi::V1::MetricService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
83
|
+
@event_svc = Dogapi::V1::EventService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
84
|
+
@tag_svc = Dogapi::V1::TagService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
85
|
+
@comment_svc = Dogapi::V1::CommentService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
86
|
+
@search_svc = Dogapi::V1::SearchService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
87
|
+
@dash_service = Dogapi::V1::DashService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
88
|
+
@dashboard_service = Dogapi::V1::DashboardService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
88
89
|
@dashboard_list_service = Dogapi::V1::DashboardListService.new(
|
89
|
-
@api_key, @application_key, silent, timeout, @datadog_host
|
90
|
+
@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation
|
90
91
|
)
|
91
|
-
@alert_svc = Dogapi::V1::AlertService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
92
|
-
@user_svc = Dogapi::V1::UserService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
93
|
-
@snapshot_svc = Dogapi::V1::SnapshotService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
94
|
-
@embed_svc = Dogapi::V1::EmbedService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
95
|
-
@screenboard_svc = Dogapi::V1::ScreenboardService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
96
|
-
@monitor_svc = Dogapi::V1::MonitorService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
97
|
-
@synthetics_svc = Dogapi::V1::SyntheticsService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
98
|
-
@service_check_svc = Dogapi::V1::ServiceCheckService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
99
|
-
@metadata_svc = Dogapi::V1::MetadataService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
92
|
+
@alert_svc = Dogapi::V1::AlertService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
93
|
+
@user_svc = Dogapi::V1::UserService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
94
|
+
@snapshot_svc = Dogapi::V1::SnapshotService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
95
|
+
@embed_svc = Dogapi::V1::EmbedService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
96
|
+
@screenboard_svc = Dogapi::V1::ScreenboardService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
97
|
+
@monitor_svc = Dogapi::V1::MonitorService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
98
|
+
@synthetics_svc = Dogapi::V1::SyntheticsService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
99
|
+
@service_check_svc = Dogapi::V1::ServiceCheckService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
100
|
+
@metadata_svc = Dogapi::V1::MetadataService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
100
101
|
@legacy_event_svc = Dogapi::EventService.new(@datadog_host)
|
101
|
-
@hosts_svc = Dogapi::V1::HostsService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
102
|
-
@integration_svc = Dogapi::V1::IntegrationService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
103
|
-
@aws_integration_svc = Dogapi::V1::AwsIntegrationService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
104
|
-
@aws_logs_svc = Dogapi::V1::AwsLogsService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
105
|
-
@usage_svc = Dogapi::V1::UsageService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
106
|
-
@azure_integration_svc = Dogapi::V1::AzureIntegrationService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
107
|
-
@gcp_integration_svc = Dogapi::V1::GcpIntegrationService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
102
|
+
@hosts_svc = Dogapi::V1::HostsService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
103
|
+
@integration_svc = Dogapi::V1::IntegrationService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
104
|
+
@aws_integration_svc = Dogapi::V1::AwsIntegrationService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
105
|
+
@aws_logs_svc = Dogapi::V1::AwsLogsService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
106
|
+
@usage_svc = Dogapi::V1::UsageService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
107
|
+
@azure_integration_svc = Dogapi::V1::AzureIntegrationService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
108
|
+
@gcp_integration_svc = Dogapi::V1::GcpIntegrationService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
108
109
|
@service_level_objective_svc = Dogapi::V1::ServiceLevelObjectiveService.new(@api_key, @application_key, silent,
|
109
|
-
timeout, @datadog_host)
|
110
|
+
timeout, @datadog_host, skip_ssl_validation)
|
111
|
+
@logs_pipeline_svc = Dogapi::V1::LogsPipelineService.new(@api_key, @application_key, silent, timeout, @datadog_host, skip_ssl_validation)
|
110
112
|
|
111
113
|
# Support for Dashboard List API v2.
|
112
|
-
@v2 = Dogapi::ClientV2.new(@api_key, @application_key, true, true, @datadog_host)
|
114
|
+
@v2 = Dogapi::ClientV2.new(@api_key, @application_key, true, true, @datadog_host, skip_ssl_validation)
|
113
115
|
|
114
116
|
end
|
115
117
|
# rubocop:enable Metrics/MethodLength, Metrics/LineLength
|
@@ -716,6 +718,30 @@ module Dogapi
|
|
716
718
|
@service_level_objective_svc.delete_timeframes_service_level_objective(ops)
|
717
719
|
end
|
718
720
|
|
721
|
+
#
|
722
|
+
# LOGS PIPELINES
|
723
|
+
#
|
724
|
+
|
725
|
+
def create_logs_pipeline(name, filter, options = {})
|
726
|
+
@logs_pipeline_svc.create_logs_pipeline(name, filter, options)
|
727
|
+
end
|
728
|
+
|
729
|
+
def get_logs_pipeline(pipeline_id)
|
730
|
+
@logs_pipeline_svc.get_logs_pipeline(pipeline_id)
|
731
|
+
end
|
732
|
+
|
733
|
+
def get_all_logs_pipelines
|
734
|
+
@logs_pipeline_svc.get_all_logs_pipelines
|
735
|
+
end
|
736
|
+
|
737
|
+
def update_logs_pipeline(pipeline_id, name, filter, options = {})
|
738
|
+
@logs_pipeline_svc.update_logs_pipeline(pipeline_id, name, filter, options)
|
739
|
+
end
|
740
|
+
|
741
|
+
def delete_logs_pipeline(pipeline_id)
|
742
|
+
@logs_pipeline_svc.delete_logs_pipeline(pipeline_id)
|
743
|
+
end
|
744
|
+
|
719
745
|
#
|
720
746
|
# SERVICE CHECKS
|
721
747
|
#
|
data/lib/dogapi/v1.rb
CHANGED
data/lib/dogapi/v1/alert.rb
CHANGED
data/lib/dogapi/v1/aws_logs.rb
CHANGED
data/lib/dogapi/v1/comment.rb
CHANGED
data/lib/dogapi/v1/dash.rb
CHANGED
data/lib/dogapi/v1/dashboard.rb
CHANGED
@@ -2,8 +2,6 @@
|
|
2
2
|
# This product includes software developed at Datadog (https://www.datadoghq.com/).
|
3
3
|
# Copyright 2011-Present Datadog, Inc.
|
4
4
|
|
5
|
-
require 'dogapi'
|
6
|
-
|
7
5
|
module Dogapi
|
8
6
|
class V1 # for namespacing
|
9
7
|
|
@@ -28,6 +26,11 @@ module Dogapi
|
|
28
26
|
# e.g. '["user1@domain.com", "user2@domain.com"]'
|
29
27
|
# :template_variables => JSON: List of template variables for this dashboard.
|
30
28
|
# e.g. [{"name": "host", "prefix": "host", "default": "my-host"}]
|
29
|
+
# :template_variable_presets => JSON: List of template variables saved views
|
30
|
+
# e.g. {
|
31
|
+
# "name": "my_template_variable_preset",
|
32
|
+
# "template_variables": [{"name": "host", "prefix": "host", "default": "my-host"}]
|
33
|
+
# }
|
31
34
|
def create_board(title, widgets, layout_type, options)
|
32
35
|
# Required arguments
|
33
36
|
body = {
|
@@ -40,6 +43,7 @@ module Dogapi
|
|
40
43
|
body[:is_read_only] = options[:is_read_only] if options[:is_read_only]
|
41
44
|
body[:notify_list] = options[:notify_list] if options[:notify_list]
|
42
45
|
body[:template_variables] = options[:template_variables] if options[:template_variables]
|
46
|
+
body[:template_variable_presets] = options[:template_variable_presets] if options[:template_variable_presets]
|
43
47
|
|
44
48
|
request(Net::HTTP::Post, "/api/#{API_VERSION}/#{RESOURCE_NAME}", nil, body, true)
|
45
49
|
end
|
@@ -60,6 +64,11 @@ module Dogapi
|
|
60
64
|
# e.g. '["user1@domain.com", "user2@domain.com"]'
|
61
65
|
# :template_variables => JSON: List of template variables for this dashboard.
|
62
66
|
# e.g. [{"name": "host", "prefix": "host", "default": "my-host"}]
|
67
|
+
# :template_variable_presets => JSON: List of template variables saved views
|
68
|
+
# e.g. {
|
69
|
+
# "name": "my_template_variable_preset",
|
70
|
+
# "template_variables": [{"name": "host", "prefix": "host", "default": "my-host"}]
|
71
|
+
# }
|
63
72
|
def update_board(dashboard_id, title, widgets, layout_type, options)
|
64
73
|
# Required arguments
|
65
74
|
body = {
|
@@ -72,6 +81,7 @@ module Dogapi
|
|
72
81
|
body[:is_read_only] = options[:is_read_only] if options[:is_read_only]
|
73
82
|
body[:notify_list] = options[:notify_list] if options[:notify_list]
|
74
83
|
body[:template_variables] = options[:template_variables] if options[:template_variables]
|
84
|
+
body[:template_variable_presets] = options[:template_variable_presets] if options[:template_variable_presets]
|
75
85
|
|
76
86
|
request(Net::HTTP::Put, "/api/#{API_VERSION}/#{RESOURCE_NAME}/#{dashboard_id}", nil, body, true)
|
77
87
|
end
|
data/lib/dogapi/v1/embed.rb
CHANGED
data/lib/dogapi/v1/event.rb
CHANGED
data/lib/dogapi/v1/hosts.rb
CHANGED
@@ -0,0 +1,41 @@
|
|
1
|
+
# Unless explicitly stated otherwise all files in this repository are licensed under the BSD-3-Clause License.
|
2
|
+
# This product includes software developed at Datadog (https://www.datadoghq.com/).
|
3
|
+
# Copyright 2011-Present Datadog, Inc.
|
4
|
+
|
5
|
+
module Dogapi
|
6
|
+
class V1 # for namespacing
|
7
|
+
class LogsPipelineService < Dogapi::APIService
|
8
|
+
API_VERSION = 'v1'
|
9
|
+
|
10
|
+
def create_logs_pipeline(name, filter, options = {})
|
11
|
+
body = {
|
12
|
+
'name' => name,
|
13
|
+
'filter' => filter
|
14
|
+
}.merge options
|
15
|
+
|
16
|
+
request(Net::HTTP::Post, "/api/#{API_VERSION}/logs/config/pipelines", nil, body, true)
|
17
|
+
end
|
18
|
+
|
19
|
+
def get_logs_pipeline(pipeline_id)
|
20
|
+
request(Net::HTTP::Get, "/api/#{API_VERSION}/logs/config/pipelines/#{pipeline_id}", nil, nil, false)
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_all_logs_pipelines
|
24
|
+
request(Net::HTTP::Get, "/api/#{API_VERSION}/logs/config/pipelines", nil, nil, false)
|
25
|
+
end
|
26
|
+
|
27
|
+
def update_logs_pipeline(pipeline_id, name, filter, options = {})
|
28
|
+
body = {
|
29
|
+
'name' => name,
|
30
|
+
'filter' => filter
|
31
|
+
}.merge options
|
32
|
+
|
33
|
+
request(Net::HTTP::Put, "/api/#{API_VERSION}/logs/config/pipelines/#{pipeline_id}", nil, body, true)
|
34
|
+
end
|
35
|
+
|
36
|
+
def delete_logs_pipeline(pipeline_id)
|
37
|
+
request(Net::HTTP::Delete, "/api/#{API_VERSION}/logs/config/pipelines/#{pipeline_id}", nil, nil, false)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/lib/dogapi/v1/metadata.rb
CHANGED
data/lib/dogapi/v1/metric.rb
CHANGED
data/lib/dogapi/v1/monitor.rb
CHANGED
data/lib/dogapi/v1/search.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
# Unless explicitly stated otherwise all files in this repository are licensed under the BSD-3-Clause License.
|
2
|
+
# This product includes software developed at Datadog (https://www.datadoghq.com/).
|
3
|
+
# Copyright 2011-Present Datadog, Inc.
|
2
4
|
|
3
5
|
module Dogapi
|
4
6
|
class V1 # for namespacing
|
data/lib/dogapi/v1/snapshot.rb
CHANGED
data/lib/dogapi/v1/synthetics.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
# Unless explicitly stated otherwise all files in this repository are licensed under the BSD-3-Clause License.
|
2
|
+
# This product includes software developed at Datadog (https://www.datadoghq.com/).
|
3
|
+
# Copyright 2011-Present Datadog, Inc.
|
2
4
|
|
3
5
|
module Dogapi
|
4
6
|
class V1 # for namespacing
|
data/lib/dogapi/v1/tag.rb
CHANGED
data/lib/dogapi/v1/usage.rb
CHANGED
data/lib/dogapi/v1/user.rb
CHANGED
data/lib/dogapi/version.rb
CHANGED
@@ -26,6 +26,15 @@ describe Dogapi::Client do
|
|
26
26
|
'prefix' => 'host',
|
27
27
|
'default' => 'my-host'
|
28
28
|
}].freeze
|
29
|
+
TEMPLATE_VARIABLE_PRESETS = [{
|
30
|
+
'name' => 'preset1',
|
31
|
+
'template_variables' => [
|
32
|
+
{
|
33
|
+
'name' => 'host1',
|
34
|
+
'value' => 'my-host'
|
35
|
+
}
|
36
|
+
]
|
37
|
+
}].freeze
|
29
38
|
|
30
39
|
REQUIRED_ARGS = {
|
31
40
|
title: TITLE,
|
@@ -37,7 +46,8 @@ describe Dogapi::Client do
|
|
37
46
|
description: DESCRIPTION,
|
38
47
|
is_read_only: IS_READ_ONLY,
|
39
48
|
notify_list: NOTIFY_LIST,
|
40
|
-
template_variables: TEMPLATE_VARIABLES
|
49
|
+
template_variables: TEMPLATE_VARIABLES,
|
50
|
+
template_variable_presets: TEMPLATE_VARIABLE_PRESETS
|
41
51
|
}
|
42
52
|
DASHBOARD_ARGS = REQUIRED_ARGS.values + [OPTIONS]
|
43
53
|
DASHBOARD_PAYLOAD = REQUIRED_ARGS.merge(OPTIONS)
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# Unless explicitly stated otherwise all files in this repository are licensed under the BSD-3-Clause License.
|
2
|
+
# This product includes software developed at Datadog (https://www.datadoghq.com/).
|
3
|
+
# Copyright 2011-Present Datadog, Inc.
|
4
|
+
|
5
|
+
require_relative '../spec_helper'
|
6
|
+
|
7
|
+
describe Dogapi::Client do
|
8
|
+
LOGS_PIPELINE_ID = '42'
|
9
|
+
LOGS_PIPELINE_NAME = 'my logs pipeline'.freeze
|
10
|
+
LOGS_PIPELINE_FILTER = { 'query' => 'source:my-app' }.freeze
|
11
|
+
|
12
|
+
describe '#create_logs_pipeline' do
|
13
|
+
it_behaves_like 'an api method with options',
|
14
|
+
:create_logs_pipeline, [LOGS_PIPELINE_NAME, LOGS_PIPELINE_FILTER],
|
15
|
+
:post, '/logs/config/pipelines', 'name' => LOGS_PIPELINE_NAME,
|
16
|
+
'filter' => LOGS_PIPELINE_FILTER
|
17
|
+
end
|
18
|
+
|
19
|
+
describe '#get_logs_pipeline' do
|
20
|
+
it_behaves_like 'an api method',
|
21
|
+
:get_logs_pipeline, [LOGS_PIPELINE_ID],
|
22
|
+
:get, "/logs/config/pipelines/#{LOGS_PIPELINE_ID}"
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '#get_all_logs_pipelines' do
|
26
|
+
it_behaves_like 'an api method',
|
27
|
+
:get_all_logs_pipelines, [],
|
28
|
+
:get, '/logs/config/pipelines'
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '#update_logs_pipeline' do
|
32
|
+
it_behaves_like 'an api method with options',
|
33
|
+
:update_logs_pipeline, [LOGS_PIPELINE_ID, LOGS_PIPELINE_NAME, LOGS_PIPELINE_FILTER],
|
34
|
+
:put, "/logs/config/pipelines/#{LOGS_PIPELINE_ID}", 'name' => LOGS_PIPELINE_NAME,
|
35
|
+
'filter' => LOGS_PIPELINE_FILTER
|
36
|
+
end
|
37
|
+
|
38
|
+
describe '#delete_logs_pipeline' do
|
39
|
+
it_behaves_like 'an api method',
|
40
|
+
:delete_logs_pipeline, [LOGS_PIPELINE_ID],
|
41
|
+
:delete, "/logs/config/pipelines/#{LOGS_PIPELINE_ID}"
|
42
|
+
end
|
43
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -10,7 +10,19 @@ SimpleCov.start do
|
|
10
10
|
add_filter 'spec'
|
11
11
|
end
|
12
12
|
|
13
|
-
|
13
|
+
webmock_allow = []
|
14
|
+
|
15
|
+
begin
|
16
|
+
require 'ddtrace'
|
17
|
+
Datadog.configure do |c|
|
18
|
+
c.use :rspec, service_name: 'dogapi-rb'
|
19
|
+
end
|
20
|
+
webmock_allow << "#{Datadog::Transport::HTTP.default_hostname}:#{Datadog::Transport::HTTP.default_port}"
|
21
|
+
rescue LoadError
|
22
|
+
puts 'ddtrace gem not found'
|
23
|
+
end
|
24
|
+
|
25
|
+
WebMock.disable_net_connect!(allow_localhost: false, allow: webmock_allow)
|
14
26
|
|
15
27
|
# include our code and methods
|
16
28
|
require 'dogapi'
|
data/spec/unit/common_spec.rb
CHANGED
@@ -134,6 +134,15 @@ describe 'Common' do
|
|
134
134
|
expect(req['DD-APPLICATION-KEY']).to eq service.application_key
|
135
135
|
end
|
136
136
|
end
|
137
|
+
|
138
|
+
it 'properly sets User-Agent header' do
|
139
|
+
service = Dogapi::APIService.new('api_key', 'app_key', true, nil, 'https://app.example.com')
|
140
|
+
params = service.prepare_params(nil, '/api/v1/validate', true)
|
141
|
+
req = service.prepare_request(Net::HTTP::Get, '/api/v1/validate', params, nil, false, true)
|
142
|
+
|
143
|
+
expect(req.key?('User-Agent')).to be true
|
144
|
+
expect(req['User-Agent']).to match(%r{dogapi-rb\/[^\s]+ \(ruby [^\s]+; os [^\s]+; arch [^\s]+\)})
|
145
|
+
end
|
137
146
|
end
|
138
147
|
end
|
139
148
|
|
@@ -173,21 +182,21 @@ describe Dogapi::APIService do
|
|
173
182
|
context 'when receiving a correct reponse with valid json' do
|
174
183
|
it 'parses it and return code and parsed body' do
|
175
184
|
dog = dogapi_service
|
176
|
-
resp = FakeResponse.new 202, '{"test2": "test3"}'
|
177
|
-
expect(dog.handle_response(resp)).to eq([202, { 'test2' => 'test3' }])
|
185
|
+
resp = FakeResponse.new '202', '{"test2": "test3"}'
|
186
|
+
expect(dog.handle_response(resp)).to eq(['202', { 'test2' => 'test3' }])
|
178
187
|
end
|
179
188
|
end
|
180
189
|
context 'when receiving a response with invalid json' do
|
181
190
|
it 'raises an error' do
|
182
191
|
dog = dogapi_service
|
183
|
-
resp = FakeResponse.new 202, "{'test2': }"
|
192
|
+
resp = FakeResponse.new '202', "{'test2': }"
|
184
193
|
expect { dog.handle_response(resp) }.to raise_error(RuntimeError, "Invalid JSON Response: {'test2': }")
|
185
194
|
end
|
186
195
|
end
|
187
196
|
context 'when receiving a non json response' do
|
188
197
|
it 'raises an error indicating the response Content-Type' do
|
189
198
|
dog = dogapi_service
|
190
|
-
resp = FakeResponse.new 202, '<html><body><h1>403 Forbidden</h1>', 'text/html'
|
199
|
+
resp = FakeResponse.new '202', '<html><body><h1>403 Forbidden</h1>', 'text/html'
|
191
200
|
msg = 'Response Content-Type is not application/json but is text/html: <html><body><h1>403 Forbidden</h1>'
|
192
201
|
expect { dog.handle_response(resp) }.to raise_error(RuntimeError, msg)
|
193
202
|
end
|
@@ -195,12 +204,12 @@ describe Dogapi::APIService do
|
|
195
204
|
context 'when receiving a bad response' do
|
196
205
|
it 'returns the error code and an empty body' do
|
197
206
|
dog = dogapi_service
|
198
|
-
resp = FakeResponse.new 204, ''
|
199
|
-
expect(dog.handle_response(resp)).to eq([204, {}])
|
200
|
-
resp = FakeResponse.new 202, nil
|
201
|
-
expect(dog.handle_response(resp)).to eq([202, {}])
|
202
|
-
resp = FakeResponse.new 202, 'null'
|
203
|
-
expect(dog.handle_response(resp)).to eq([202, {}])
|
207
|
+
resp = FakeResponse.new '204', ''
|
208
|
+
expect(dog.handle_response(resp)).to eq(['204', {}])
|
209
|
+
resp = FakeResponse.new '202', nil
|
210
|
+
expect(dog.handle_response(resp)).to eq(['202', {}])
|
211
|
+
resp = FakeResponse.new '202', 'null'
|
212
|
+
expect(dog.handle_response(resp)).to eq(['202', {}])
|
204
213
|
end
|
205
214
|
end
|
206
215
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dogapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.45.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Datadog, Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
@@ -125,6 +125,7 @@ files:
|
|
125
125
|
- lib/dogapi/v1/gcp_integration.rb
|
126
126
|
- lib/dogapi/v1/hosts.rb
|
127
127
|
- lib/dogapi/v1/integration.rb
|
128
|
+
- lib/dogapi/v1/logs_pipeline.rb
|
128
129
|
- lib/dogapi/v1/metadata.rb
|
129
130
|
- lib/dogapi/v1/metric.rb
|
130
131
|
- lib/dogapi/v1/monitor.rb
|
@@ -153,6 +154,7 @@ files:
|
|
153
154
|
- spec/integration/event_spec.rb
|
154
155
|
- spec/integration/gcp_integration_spec.rb
|
155
156
|
- spec/integration/integration_spec.rb
|
157
|
+
- spec/integration/logs_pipeline_spec.rb
|
156
158
|
- spec/integration/metadata_spec.rb
|
157
159
|
- spec/integration/metric_spec.rb
|
158
160
|
- spec/integration/monitor_spec.rb
|
@@ -177,7 +179,7 @@ metadata:
|
|
177
179
|
changelog_uri: https://github.com/DataDog/dogapi-rb/blob/master/CHANGELOG.md
|
178
180
|
documentation_uri: https://docs.datadoghq.com/api/
|
179
181
|
source_code_uri: https://github.com/DataDog/dogapi-rb
|
180
|
-
post_install_message:
|
182
|
+
post_install_message:
|
181
183
|
rdoc_options:
|
182
184
|
- "--title"
|
183
185
|
- DogAPI -- Datadog Client
|
@@ -199,7 +201,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
199
201
|
version: '0'
|
200
202
|
requirements: []
|
201
203
|
rubygems_version: 3.0.6
|
202
|
-
signing_key:
|
204
|
+
signing_key:
|
203
205
|
specification_version: 4
|
204
206
|
summary: Ruby bindings for Datadog's API
|
205
207
|
test_files:
|
@@ -216,6 +218,7 @@ test_files:
|
|
216
218
|
- spec/integration/event_spec.rb
|
217
219
|
- spec/integration/gcp_integration_spec.rb
|
218
220
|
- spec/integration/integration_spec.rb
|
221
|
+
- spec/integration/logs_pipeline_spec.rb
|
219
222
|
- spec/integration/metadata_spec.rb
|
220
223
|
- spec/integration/metric_spec.rb
|
221
224
|
- spec/integration/monitor_spec.rb
|