chef-handler-datadog 0.10.0 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +2 -2
- data/CHANGELOG.md +14 -0
- data/chef-handler-datadog.gemspec +1 -1
- data/lib/chef/handler/datadog.rb +1 -1
- data/lib/chef/handler/datadog_chef_events.rb +5 -1
- data/lib/chef/handler/datadog_chef_metrics.rb +4 -6
- data/lib/chef/handler/datadog_chef_tags.rb +26 -1
- data/lib/chef/handler/datadog_util.rb +9 -0
- data/lib/chef_handler_datadog.rb +1 -1
- data/spec/datadog_spec.rb +73 -1
- data/spec/support/cassettes/Chef_Handler_Datadog/resources/failure_during_compile_phase_with_an_elapsed_time_and_incomplete_resource_collection/only_emits_the_run_status_metrics.yml +173 -0
- data/spec/support/cassettes/Chef_Handler_Datadog/resources/failure_during_compile_phase_with_an_elapsed_time_and_incomplete_resource_collection/posts_an_event.yml +173 -0
- data/spec/support/cassettes/Chef_Handler_Datadog/tags/when_policy_tags_are_enabled/sets_the_policy_name_and_policy_group_tags.yml +289 -0
- data/spec/support/cassettes/Chef_Handler_Datadog/tags/when_policy_tags_are_not_enabled/does_not_set_the_policy_name_and_policy_group_tags.yml +289 -0
- metadata +16 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 308a47f2627c273fad10d5450844bd1f7df24fa2
|
4
|
+
data.tar.gz: 92becd3cd3618f5d912cd84dfbe1f2e12eed13d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c0be776ba0d0470bf430f3c34160690192fa03ca5ab1e1fd6a261b516a297915a8d1bfcf6dfc2129bb8ac31dbec712f09aa8cfe11321110318cf7b31bc23307e
|
7
|
+
data.tar.gz: 4d03811f3daa58f408b37a40779d6d7ee600278778392ae67fa3bfe46ab2f1dab9f7bf86003e939f30bee339b7d1d6feba4bf131244c98905eba2243b5f362bb
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
Changes
|
2
2
|
=======
|
3
3
|
|
4
|
+
# 0.11.0 / 2017-02-21
|
5
|
+
|
6
|
+
* [FEATURE] Send policy name and group tags if they exist (opt-in) [#90][] & [#97][] [@david-ds][] & [@olivielpeau][]
|
7
|
+
* [BUGFIX] Improve detection of compile time error before sending event [#96][] [@olivielpeau][] (thanks [@DanielRedOak][] and [@andrewjamesbrown][])
|
8
|
+
* [BUGFIX] Remove spurious `puts` debug statement [#93][] [@kingpong][]
|
9
|
+
|
4
10
|
# 0.10.0 / 2016-09-20
|
5
11
|
|
6
12
|
* [FEATURE] Allow passing `scope_prefix` param that prefixes env and role tags [#82][] [@DanielMuller][]
|
@@ -100,15 +106,23 @@ And all other versions were prior to this. See git history for more.
|
|
100
106
|
[#86]: https://github.com/DataDog/chef-handler-datadog/issues/86
|
101
107
|
[#87]: https://github.com/DataDog/chef-handler-datadog/issues/87
|
102
108
|
[#89]: https://github.com/DataDog/chef-handler-datadog/issues/89
|
109
|
+
[#90]: https://github.com/DataDog/chef-handler-datadog/issues/90
|
110
|
+
[#93]: https://github.com/DataDog/chef-handler-datadog/issues/93
|
111
|
+
[#96]: https://github.com/DataDog/chef-handler-datadog/issues/96
|
112
|
+
[#97]: https://github.com/DataDog/chef-handler-datadog/issues/97
|
103
113
|
[@ABrehm264]: https://github.com/ABrehm264
|
104
114
|
[@DanielMuller]: https://github.com/DanielMuller
|
115
|
+
[@DanielRedOak]: https://github.com/DanielRedOak
|
105
116
|
[@alq]: https://github.com/alq
|
117
|
+
[@andrewjamesbrown]: https://github.com/andrewjamesbrown
|
106
118
|
[@bigbam505]: https://github.com/bigbam505
|
107
119
|
[@datwiz]: https://github.com/datwiz
|
120
|
+
[@david-ds]: https://github.com/david-ds
|
108
121
|
[@degemer]: https://github.com/degemer
|
109
122
|
[@devonbleak]: https://github.com/devonbleak
|
110
123
|
[@dwradcliffe]: https://github.com/dwradcliffe
|
111
124
|
[@jhulten]: https://github.com/jhulten
|
125
|
+
[@kingpong]: https://github.com/kingpong
|
112
126
|
[@miketheman]: https://github.com/miketheman
|
113
127
|
[@mstepniowski]: https://github.com/mstepniowski
|
114
128
|
[@olivielpeau]: https://github.com/olivielpeau
|
@@ -20,7 +20,7 @@ Gem::Specification.new do |gem|
|
|
20
20
|
gem.add_development_dependency 'bundler'
|
21
21
|
gem.add_development_dependency 'chef', '>= 10.14.4', '<= 13'
|
22
22
|
gem.add_development_dependency 'dotenv'
|
23
|
-
gem.add_development_dependency 'rake'
|
23
|
+
gem.add_development_dependency 'rake', '< 12.0'
|
24
24
|
gem.add_development_dependency 'rspec', '~> 3.2.0'
|
25
25
|
gem.add_development_dependency 'rubocop', '~> 0.34.2'
|
26
26
|
gem.add_development_dependency 'simplecov'
|
data/lib/chef/handler/datadog.rb
CHANGED
@@ -59,6 +59,7 @@ class Chef
|
|
59
59
|
.with_retries(config[:tags_submission_retries])
|
60
60
|
.with_tag_blacklist(config[:tags_blacklist_regex])
|
61
61
|
.with_scope_prefix(config[:scope_prefix])
|
62
|
+
.with_policy_tags_enabled(config[:send_policy_tags])
|
62
63
|
|
63
64
|
# Build the chef event information
|
64
65
|
@event =
|
@@ -96,7 +97,6 @@ class Chef
|
|
96
97
|
(config.key?(:use_ec2_instance_id) && config[:use_ec2_instance_id])
|
97
98
|
|
98
99
|
if config[:hostname]
|
99
|
-
puts "found hostname #{config[:hostname]} in config object"
|
100
100
|
config[:hostname]
|
101
101
|
elsif use_ec2_instance_id && node.attribute?('ec2') && node.ec2.attribute?('instance_id')
|
102
102
|
node.ec2.instance_id
|
@@ -4,8 +4,12 @@ require 'chef/handler'
|
|
4
4
|
require 'chef/mash'
|
5
5
|
require 'dogapi'
|
6
6
|
|
7
|
+
require_relative 'datadog_util'
|
8
|
+
|
7
9
|
# helper class for sending events about chef runs
|
8
10
|
class DatadogChefEvents
|
11
|
+
include DatadogUtil
|
12
|
+
|
9
13
|
def initialize
|
10
14
|
@hostname = nil
|
11
15
|
@run_status = nil
|
@@ -128,7 +132,7 @@ class DatadogChefEvents
|
|
128
132
|
def build_event_data
|
129
133
|
# bail early in case of a compiletime failure
|
130
134
|
# OPTIMIZE: Use better inspectors to handle failure scenarios, refactor needed.
|
131
|
-
if
|
135
|
+
if compile_error?
|
132
136
|
@alert_type = 'error'
|
133
137
|
@event_title = "Chef failed during compile phase on #{@hostname} "
|
134
138
|
@event_priority = 'normal'
|
@@ -1,8 +1,12 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require 'dogapi'
|
3
3
|
|
4
|
+
require_relative 'datadog_util'
|
5
|
+
|
4
6
|
# helper class for sending datadog metrics from a chef run
|
5
7
|
class DatadogChefMetrics
|
8
|
+
include DatadogUtil
|
9
|
+
|
6
10
|
def initialize
|
7
11
|
@hostname = ''
|
8
12
|
@run_status = nil
|
@@ -46,10 +50,4 @@ class DatadogChefMetrics
|
|
46
50
|
rescue Errno::ECONNREFUSED, Errno::ETIMEDOUT => e
|
47
51
|
Chef::Log.error("Could not send metrics to Datadog. Connection error:\n" + e)
|
48
52
|
end
|
49
|
-
|
50
|
-
private
|
51
|
-
|
52
|
-
def compile_error?
|
53
|
-
@run_status.all_resources.nil? || @run_status.elapsed_time.nil? || @run_status.updated_resources.nil?
|
54
|
-
end
|
55
53
|
end # end class DatadogChefMetrics
|
@@ -15,6 +15,7 @@ class DatadogChefTags
|
|
15
15
|
@retries = 0
|
16
16
|
@combined_host_tags = nil
|
17
17
|
@regex_black_list = nil
|
18
|
+
@policy_tags_enabled = false
|
18
19
|
end
|
19
20
|
|
20
21
|
# set the chef run status used for the report
|
@@ -76,6 +77,15 @@ class DatadogChefTags
|
|
76
77
|
self
|
77
78
|
end
|
78
79
|
|
80
|
+
# enable policy tags
|
81
|
+
#
|
82
|
+
# @param enabled [TrueClass,FalseClass] enable or disable policy tags
|
83
|
+
# @return [DatadogChefTags] instance reference to self enabling method chaining
|
84
|
+
def with_policy_tags_enabled(enabled)
|
85
|
+
@policy_tags_enabled = enabled unless enabled.nil?
|
86
|
+
self
|
87
|
+
end
|
88
|
+
|
79
89
|
# send updated chef run generated tags to Datadog
|
80
90
|
#
|
81
91
|
# @param dog [Dogapi::Client] Dogapi Client to be used
|
@@ -113,7 +123,7 @@ class DatadogChefTags
|
|
113
123
|
# @return [Array] the set of host tags based off the chef run
|
114
124
|
def combined_host_tags
|
115
125
|
# Combine (union) all arrays. Removes duplicates if found.
|
116
|
-
node_env.split | node_roles | node_tags
|
126
|
+
node_env.split | node_roles | node_policy_tags | node_tags
|
117
127
|
end
|
118
128
|
|
119
129
|
private
|
@@ -126,6 +136,21 @@ class DatadogChefTags
|
|
126
136
|
"#{@scope_prefix}env:#{@node.chef_environment}" if @node.respond_to?('chef_environment')
|
127
137
|
end
|
128
138
|
|
139
|
+
# Send the policy name and policy group as chef tags when using chef policyfiles feature
|
140
|
+
# The policy_group and policy_name attributes exist only for chef >= 12.5.1
|
141
|
+
def node_policy_tags
|
142
|
+
policy_tags = []
|
143
|
+
if @policy_tags_enabled
|
144
|
+
if @node.respond_to?('policy_group') && !@node.policy_group.nil?
|
145
|
+
policy_tags << "#{@scope_prefix}policy_group:#{@node.policy_group}"
|
146
|
+
end
|
147
|
+
if @node.respond_to?('policy_name') && !@node.policy_name.nil?
|
148
|
+
policy_tags << "#{@scope_prefix}policy_name:#{@node.policy_name}"
|
149
|
+
end
|
150
|
+
end
|
151
|
+
policy_tags
|
152
|
+
end
|
153
|
+
|
129
154
|
def node_tags
|
130
155
|
return [] unless @node.tags
|
131
156
|
output = @node.tags.map { |tag| "#{@tag_prefix}#{tag}" }
|
data/lib/chef_handler_datadog.rb
CHANGED
data/spec/datadog_spec.rb
CHANGED
@@ -324,6 +324,49 @@ describe Chef::Handler::Datadog, :vcr => :new_episodes do
|
|
324
324
|
)).to have_been_made.times(1)
|
325
325
|
end
|
326
326
|
end
|
327
|
+
|
328
|
+
describe 'when policy tags are not enabled' do
|
329
|
+
# This feature is available only for chef >= 12.5.1
|
330
|
+
if Chef::Version.new(Chef::VERSION) < Chef::Version.new("12.5.1")
|
331
|
+
next
|
332
|
+
end
|
333
|
+
it 'does not set the policy name and policy group tags' do
|
334
|
+
@node.send(:policy_name, 'the_policy_name')
|
335
|
+
@node.send(:policy_group, 'the_policy_group')
|
336
|
+
@handler.run_report_unsafe(@run_status)
|
337
|
+
|
338
|
+
expect(a_request(:put, HOST_TAG_ENDPOINT + @node.name).with(
|
339
|
+
:query => { 'api_key' => @handler.config[:api_key],
|
340
|
+
'application_key' => @handler.config[:application_key],
|
341
|
+
'source' => 'chef' },
|
342
|
+
:body => hash_including(:tags => [
|
343
|
+
'env:hostile', 'role:highlander'
|
344
|
+
]),
|
345
|
+
)).to have_been_made.times(1)
|
346
|
+
end
|
347
|
+
end
|
348
|
+
|
349
|
+
describe 'when policy tags are enabled' do
|
350
|
+
# This feature is available only for chef >= 12.5.1
|
351
|
+
if Chef::Version.new(Chef::VERSION) < Chef::Version.new("12.5.1")
|
352
|
+
next
|
353
|
+
end
|
354
|
+
it 'sets the policy name and policy group tags' do
|
355
|
+
@node.send(:policy_name, 'the_policy_name')
|
356
|
+
@node.send(:policy_group, 'the_policy_group')
|
357
|
+
@handler.config[:send_policy_tags] = true
|
358
|
+
@handler.run_report_unsafe(@run_status)
|
359
|
+
|
360
|
+
expect(a_request(:put, HOST_TAG_ENDPOINT + @node.name).with(
|
361
|
+
:query => { 'api_key' => @handler.config[:api_key],
|
362
|
+
'application_key' => @handler.config[:application_key],
|
363
|
+
'source' => 'chef' },
|
364
|
+
:body => hash_including(:tags => [
|
365
|
+
'env:hostile', 'role:highlander', 'policy_group:the_policy_group', 'policy_name:the_policy_name'
|
366
|
+
]),
|
367
|
+
)).to have_been_made.times(1)
|
368
|
+
end
|
369
|
+
end
|
327
370
|
end
|
328
371
|
|
329
372
|
context 'tags submission retries' do
|
@@ -525,7 +568,6 @@ describe Chef::Handler::Datadog, :vcr => :new_episodes do
|
|
525
568
|
@node = Chef::Node.build('chef.handler.datadog.test-resources')
|
526
569
|
@node.send(:chef_environment, 'resources')
|
527
570
|
@events = Chef::EventDispatch::Dispatcher.new
|
528
|
-
@run_context = Chef::RunContext.new(@node, {}, @events)
|
529
571
|
@run_status = Chef::RunStatus.new(@node, @events)
|
530
572
|
end
|
531
573
|
|
@@ -548,6 +590,36 @@ describe Chef::Handler::Datadog, :vcr => :new_episodes do
|
|
548
590
|
)).to have_been_made.times(1)
|
549
591
|
end
|
550
592
|
end
|
593
|
+
|
594
|
+
context 'failure during compile phase with an elapsed time and incomplete resource collection' do
|
595
|
+
before(:each) do
|
596
|
+
@run_context = Chef::RunContext.new(@node, {}, @events)
|
597
|
+
|
598
|
+
allow(@run_context.resource_collection).to receive(:all_resources).and_return(nil)
|
599
|
+
@run_status.run_context = @run_context
|
600
|
+
|
601
|
+
@expected_time = Time.now
|
602
|
+
allow(Time).to receive(:now).and_return(@expected_time, @expected_time + 5)
|
603
|
+
@run_status.start_clock
|
604
|
+
@run_status.stop_clock
|
605
|
+
|
606
|
+
@handler.run_report_unsafe(@run_status)
|
607
|
+
end
|
608
|
+
|
609
|
+
it 'only emits the run status metrics' do
|
610
|
+
expect(a_request(:post, METRICS_ENDPOINT).with(
|
611
|
+
:query => { 'api_key' => @handler.config[:api_key] }
|
612
|
+
)).to have_been_made.times(2)
|
613
|
+
end
|
614
|
+
|
615
|
+
it 'posts an event' do
|
616
|
+
expect(a_request(:post, EVENTS_ENDPOINT).with(
|
617
|
+
:query => { 'api_key' => @handler.config[:api_key] },
|
618
|
+
:body => hash_including(:msg_text => 'Chef was unable to complete a run, an error during compilation may have occured.'),
|
619
|
+
:body => hash_including(:msg_title => "Chef failed during compile phase on #{@node.name} "),
|
620
|
+
)).to have_been_made.times(1)
|
621
|
+
end
|
622
|
+
end
|
551
623
|
end
|
552
624
|
|
553
625
|
describe '#endpoints' do
|
@@ -0,0 +1,173 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://app.datadoghq.com/api/v1/series?api_key=<API_KEY>
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"series":[{"metric":"chef.run.success","points":[[1485547327,1.0]],"type":"counter","host":"chef.handler.datadog.test-resources","device":null}]}'
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
Content-Type:
|
17
|
+
- application/json
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 202
|
21
|
+
message: Accepted
|
22
|
+
headers:
|
23
|
+
Content-Type:
|
24
|
+
- text/json
|
25
|
+
Date:
|
26
|
+
- Fri, 27 Jan 2017 20:02:02 GMT
|
27
|
+
Dd-Pool:
|
28
|
+
- propjoe
|
29
|
+
Strict-Transport-Security:
|
30
|
+
- max-age=15724800;
|
31
|
+
X-Content-Type-Options:
|
32
|
+
- nosniff
|
33
|
+
Content-Length:
|
34
|
+
- '16'
|
35
|
+
Connection:
|
36
|
+
- keep-alive
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: '{"status": "ok"}'
|
40
|
+
http_version:
|
41
|
+
recorded_at: Fri, 27 Jan 2017 20:02:07 GMT
|
42
|
+
- request:
|
43
|
+
method: post
|
44
|
+
uri: https://app.datadoghq.com/api/v1/series?api_key=<API_KEY>
|
45
|
+
body:
|
46
|
+
encoding: UTF-8
|
47
|
+
string: '{"series":[{"metric":"chef.run.failure","points":[[1485547327,0.0]],"type":"counter","host":"chef.handler.datadog.test-resources","device":null}]}'
|
48
|
+
headers:
|
49
|
+
Accept-Encoding:
|
50
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
51
|
+
Accept:
|
52
|
+
- "*/*"
|
53
|
+
User-Agent:
|
54
|
+
- Ruby
|
55
|
+
Content-Type:
|
56
|
+
- application/json
|
57
|
+
response:
|
58
|
+
status:
|
59
|
+
code: 202
|
60
|
+
message: Accepted
|
61
|
+
headers:
|
62
|
+
Content-Type:
|
63
|
+
- text/json
|
64
|
+
Date:
|
65
|
+
- Fri, 27 Jan 2017 20:02:02 GMT
|
66
|
+
Dd-Pool:
|
67
|
+
- propjoe
|
68
|
+
Strict-Transport-Security:
|
69
|
+
- max-age=15724800;
|
70
|
+
X-Content-Type-Options:
|
71
|
+
- nosniff
|
72
|
+
Content-Length:
|
73
|
+
- '16'
|
74
|
+
Connection:
|
75
|
+
- keep-alive
|
76
|
+
body:
|
77
|
+
encoding: UTF-8
|
78
|
+
string: '{"status": "ok"}'
|
79
|
+
http_version:
|
80
|
+
recorded_at: Fri, 27 Jan 2017 20:02:07 GMT
|
81
|
+
- request:
|
82
|
+
method: post
|
83
|
+
uri: https://app.datadoghq.com/api/v1/events?api_key=<API_KEY>
|
84
|
+
body:
|
85
|
+
encoding: UTF-8
|
86
|
+
string: '{"msg_text":"Chef was unable to complete a run, an error during compilation
|
87
|
+
may have occurred.","date_happened":1485547327,"msg_title":"Chef failed during
|
88
|
+
compile phase on chef.handler.datadog.test-resources ","priority":"normal","parent":null,"tags":["env:resources"],"aggregation_key":"chef.handler.datadog.test-resources","alert_type":"error","event_type":"config_management.run","source_type_name":"chef","title":"Chef
|
89
|
+
failed during compile phase on chef.handler.datadog.test-resources ","text":"Chef
|
90
|
+
was unable to complete a run, an error during compilation may have occurred.","host":"chef.handler.datadog.test-resources","device":null}'
|
91
|
+
headers:
|
92
|
+
Accept-Encoding:
|
93
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
94
|
+
Accept:
|
95
|
+
- "*/*"
|
96
|
+
User-Agent:
|
97
|
+
- Ruby
|
98
|
+
Content-Type:
|
99
|
+
- application/json
|
100
|
+
response:
|
101
|
+
status:
|
102
|
+
code: 202
|
103
|
+
message: Accepted
|
104
|
+
headers:
|
105
|
+
Content-Type:
|
106
|
+
- text/plain; charset=utf-8
|
107
|
+
Date:
|
108
|
+
- Fri, 27 Jan 2017 20:02:02 GMT
|
109
|
+
Dd-Pool:
|
110
|
+
- propjoe
|
111
|
+
Strict-Transport-Security:
|
112
|
+
- max-age=15724800;
|
113
|
+
X-Content-Type-Options:
|
114
|
+
- nosniff
|
115
|
+
Content-Length:
|
116
|
+
- '401'
|
117
|
+
Connection:
|
118
|
+
- keep-alive
|
119
|
+
body:
|
120
|
+
encoding: UTF-8
|
121
|
+
string: '{"status":"ok","event":{"id":913219659465841444,"title":"Chef failed
|
122
|
+
during compile phase on chef.handler.datadog.test-resources ","text":"Chef
|
123
|
+
was unable to complete a run, an error during compilation may have occurred.","date_happened":1485547327,"handle":null,"priority":"normal","related_event_id":null,"tags":["env:resources"],"url":"https://app.datadoghq.com/event/event?id=913219659465841444"}}'
|
124
|
+
http_version:
|
125
|
+
recorded_at: Fri, 27 Jan 2017 20:02:07 GMT
|
126
|
+
- request:
|
127
|
+
method: put
|
128
|
+
uri: https://app.datadoghq.com/api/v1/tags/hosts/chef.handler.datadog.test-resources?api_key=<API_KEY>&application_key=<APPLICATION_KEY>&source=chef
|
129
|
+
body:
|
130
|
+
encoding: UTF-8
|
131
|
+
string: '{"tags":["env:resources"]}'
|
132
|
+
headers:
|
133
|
+
Accept-Encoding:
|
134
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
135
|
+
Accept:
|
136
|
+
- "*/*"
|
137
|
+
User-Agent:
|
138
|
+
- Ruby
|
139
|
+
Content-Type:
|
140
|
+
- application/json
|
141
|
+
response:
|
142
|
+
status:
|
143
|
+
code: 201
|
144
|
+
message: Created
|
145
|
+
headers:
|
146
|
+
Cache-Control:
|
147
|
+
- no-cache
|
148
|
+
Content-Type:
|
149
|
+
- application/json
|
150
|
+
Date:
|
151
|
+
- Fri, 27 Jan 2017 20:02:02 GMT
|
152
|
+
Dd-Pool:
|
153
|
+
- dogweb_sameorig
|
154
|
+
Pragma:
|
155
|
+
- no-cache
|
156
|
+
Strict-Transport-Security:
|
157
|
+
- max-age=15724800;
|
158
|
+
X-Content-Type-Options:
|
159
|
+
- nosniff
|
160
|
+
X-Dd-Debug:
|
161
|
+
- tfYTpqMVXM3M7Ic3NSslg9OvOysbx8Mrdhv4OAsMKCDdYga06HUB/8z0VnhYMv3C
|
162
|
+
X-Frame-Options:
|
163
|
+
- SAMEORIGIN
|
164
|
+
Content-Length:
|
165
|
+
- '71'
|
166
|
+
Connection:
|
167
|
+
- keep-alive
|
168
|
+
body:
|
169
|
+
encoding: UTF-8
|
170
|
+
string: '{"host":"chef.handler.datadog.test-resources","tags":["env:resources"]}'
|
171
|
+
http_version:
|
172
|
+
recorded_at: Fri, 27 Jan 2017 20:02:07 GMT
|
173
|
+
recorded_with: VCR 3.0.3
|
@@ -0,0 +1,173 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://app.datadoghq.com/api/v1/series?api_key=<API_KEY>
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"series":[{"metric":"chef.run.success","points":[[1485547327,1.0]],"type":"counter","host":"chef.handler.datadog.test-resources","device":null}]}'
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
Content-Type:
|
17
|
+
- application/json
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 202
|
21
|
+
message: Accepted
|
22
|
+
headers:
|
23
|
+
Content-Type:
|
24
|
+
- text/json
|
25
|
+
Date:
|
26
|
+
- Fri, 27 Jan 2017 20:02:02 GMT
|
27
|
+
Dd-Pool:
|
28
|
+
- propjoe
|
29
|
+
Strict-Transport-Security:
|
30
|
+
- max-age=15724800;
|
31
|
+
X-Content-Type-Options:
|
32
|
+
- nosniff
|
33
|
+
Content-Length:
|
34
|
+
- '16'
|
35
|
+
Connection:
|
36
|
+
- keep-alive
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: '{"status": "ok"}'
|
40
|
+
http_version:
|
41
|
+
recorded_at: Fri, 27 Jan 2017 20:02:07 GMT
|
42
|
+
- request:
|
43
|
+
method: post
|
44
|
+
uri: https://app.datadoghq.com/api/v1/series?api_key=<API_KEY>
|
45
|
+
body:
|
46
|
+
encoding: UTF-8
|
47
|
+
string: '{"series":[{"metric":"chef.run.failure","points":[[1485547327,0.0]],"type":"counter","host":"chef.handler.datadog.test-resources","device":null}]}'
|
48
|
+
headers:
|
49
|
+
Accept-Encoding:
|
50
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
51
|
+
Accept:
|
52
|
+
- "*/*"
|
53
|
+
User-Agent:
|
54
|
+
- Ruby
|
55
|
+
Content-Type:
|
56
|
+
- application/json
|
57
|
+
response:
|
58
|
+
status:
|
59
|
+
code: 202
|
60
|
+
message: Accepted
|
61
|
+
headers:
|
62
|
+
Content-Type:
|
63
|
+
- text/json
|
64
|
+
Date:
|
65
|
+
- Fri, 27 Jan 2017 20:02:02 GMT
|
66
|
+
Dd-Pool:
|
67
|
+
- propjoe
|
68
|
+
Strict-Transport-Security:
|
69
|
+
- max-age=15724800;
|
70
|
+
X-Content-Type-Options:
|
71
|
+
- nosniff
|
72
|
+
Content-Length:
|
73
|
+
- '16'
|
74
|
+
Connection:
|
75
|
+
- keep-alive
|
76
|
+
body:
|
77
|
+
encoding: UTF-8
|
78
|
+
string: '{"status": "ok"}'
|
79
|
+
http_version:
|
80
|
+
recorded_at: Fri, 27 Jan 2017 20:02:07 GMT
|
81
|
+
- request:
|
82
|
+
method: post
|
83
|
+
uri: https://app.datadoghq.com/api/v1/events?api_key=<API_KEY>
|
84
|
+
body:
|
85
|
+
encoding: UTF-8
|
86
|
+
string: '{"msg_text":"Chef was unable to complete a run, an error during compilation
|
87
|
+
may have occurred.","date_happened":1485547327,"msg_title":"Chef failed during
|
88
|
+
compile phase on chef.handler.datadog.test-resources ","priority":"normal","parent":null,"tags":["env:resources"],"aggregation_key":"chef.handler.datadog.test-resources","alert_type":"error","event_type":"config_management.run","source_type_name":"chef","title":"Chef
|
89
|
+
failed during compile phase on chef.handler.datadog.test-resources ","text":"Chef
|
90
|
+
was unable to complete a run, an error during compilation may have occurred.","host":"chef.handler.datadog.test-resources","device":null}'
|
91
|
+
headers:
|
92
|
+
Accept-Encoding:
|
93
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
94
|
+
Accept:
|
95
|
+
- "*/*"
|
96
|
+
User-Agent:
|
97
|
+
- Ruby
|
98
|
+
Content-Type:
|
99
|
+
- application/json
|
100
|
+
response:
|
101
|
+
status:
|
102
|
+
code: 202
|
103
|
+
message: Accepted
|
104
|
+
headers:
|
105
|
+
Content-Type:
|
106
|
+
- text/plain; charset=utf-8
|
107
|
+
Date:
|
108
|
+
- Fri, 27 Jan 2017 20:02:02 GMT
|
109
|
+
Dd-Pool:
|
110
|
+
- propjoe
|
111
|
+
Strict-Transport-Security:
|
112
|
+
- max-age=15724800;
|
113
|
+
X-Content-Type-Options:
|
114
|
+
- nosniff
|
115
|
+
Content-Length:
|
116
|
+
- '401'
|
117
|
+
Connection:
|
118
|
+
- keep-alive
|
119
|
+
body:
|
120
|
+
encoding: UTF-8
|
121
|
+
string: '{"status":"ok","event":{"id":913219665218676295,"title":"Chef failed
|
122
|
+
during compile phase on chef.handler.datadog.test-resources ","text":"Chef
|
123
|
+
was unable to complete a run, an error during compilation may have occurred.","date_happened":1485547327,"handle":null,"priority":"normal","related_event_id":null,"tags":["env:resources"],"url":"https://app.datadoghq.com/event/event?id=913219665218676295"}}'
|
124
|
+
http_version:
|
125
|
+
recorded_at: Fri, 27 Jan 2017 20:02:07 GMT
|
126
|
+
- request:
|
127
|
+
method: put
|
128
|
+
uri: https://app.datadoghq.com/api/v1/tags/hosts/chef.handler.datadog.test-resources?api_key=<API_KEY>&application_key=<APPLICATION_KEY>&source=chef
|
129
|
+
body:
|
130
|
+
encoding: UTF-8
|
131
|
+
string: '{"tags":["env:resources"]}'
|
132
|
+
headers:
|
133
|
+
Accept-Encoding:
|
134
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
135
|
+
Accept:
|
136
|
+
- "*/*"
|
137
|
+
User-Agent:
|
138
|
+
- Ruby
|
139
|
+
Content-Type:
|
140
|
+
- application/json
|
141
|
+
response:
|
142
|
+
status:
|
143
|
+
code: 201
|
144
|
+
message: Created
|
145
|
+
headers:
|
146
|
+
Cache-Control:
|
147
|
+
- no-cache
|
148
|
+
Content-Type:
|
149
|
+
- application/json
|
150
|
+
Date:
|
151
|
+
- Fri, 27 Jan 2017 20:02:02 GMT
|
152
|
+
Dd-Pool:
|
153
|
+
- dogweb_sameorig
|
154
|
+
Pragma:
|
155
|
+
- no-cache
|
156
|
+
Strict-Transport-Security:
|
157
|
+
- max-age=15724800;
|
158
|
+
X-Content-Type-Options:
|
159
|
+
- nosniff
|
160
|
+
X-Dd-Debug:
|
161
|
+
- gViavZoY8rjtSLcIomJIWXS+mOF/f74cR9lPqFPI7NQ=
|
162
|
+
X-Frame-Options:
|
163
|
+
- SAMEORIGIN
|
164
|
+
Content-Length:
|
165
|
+
- '71'
|
166
|
+
Connection:
|
167
|
+
- keep-alive
|
168
|
+
body:
|
169
|
+
encoding: UTF-8
|
170
|
+
string: '{"host":"chef.handler.datadog.test-resources","tags":["env:resources"]}'
|
171
|
+
http_version:
|
172
|
+
recorded_at: Fri, 27 Jan 2017 20:02:07 GMT
|
173
|
+
recorded_with: VCR 3.0.3
|
@@ -0,0 +1,289 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://app.datadoghq.com/api/v1/series?api_key=<API_KEY>
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"series":[{"metric":"chef.run.success","points":[[1453838676,1.0]],"type":"counter","host":"chef.handler.datadog.test-tags","device":null}]}'
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
Content-Type:
|
17
|
+
- application/json
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 202
|
21
|
+
message: Accepted
|
22
|
+
headers:
|
23
|
+
Content-Type:
|
24
|
+
- text/json
|
25
|
+
Date:
|
26
|
+
- Tue, 26 Jan 2016 20:04:31 GMT
|
27
|
+
Dd-Pool:
|
28
|
+
- propjoe
|
29
|
+
Strict-Transport-Security:
|
30
|
+
- max-age=15724800;
|
31
|
+
X-Content-Type-Options:
|
32
|
+
- nosniff
|
33
|
+
Content-Length:
|
34
|
+
- '16'
|
35
|
+
Connection:
|
36
|
+
- keep-alive
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: '{"status": "ok"}'
|
40
|
+
http_version:
|
41
|
+
recorded_at: Tue, 26 Jan 2016 20:04:36 GMT
|
42
|
+
- request:
|
43
|
+
method: post
|
44
|
+
uri: https://app.datadoghq.com/api/v1/series?api_key=<API_KEY>
|
45
|
+
body:
|
46
|
+
encoding: UTF-8
|
47
|
+
string: '{"series":[{"metric":"chef.run.failure","points":[[1453838676,0.0]],"type":"counter","host":"chef.handler.datadog.test-tags","device":null}]}'
|
48
|
+
headers:
|
49
|
+
Accept-Encoding:
|
50
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
51
|
+
Accept:
|
52
|
+
- "*/*"
|
53
|
+
User-Agent:
|
54
|
+
- Ruby
|
55
|
+
Content-Type:
|
56
|
+
- application/json
|
57
|
+
response:
|
58
|
+
status:
|
59
|
+
code: 202
|
60
|
+
message: Accepted
|
61
|
+
headers:
|
62
|
+
Content-Type:
|
63
|
+
- text/json
|
64
|
+
Date:
|
65
|
+
- Tue, 26 Jan 2016 20:04:31 GMT
|
66
|
+
Dd-Pool:
|
67
|
+
- propjoe
|
68
|
+
Strict-Transport-Security:
|
69
|
+
- max-age=15724800;
|
70
|
+
X-Content-Type-Options:
|
71
|
+
- nosniff
|
72
|
+
Content-Length:
|
73
|
+
- '16'
|
74
|
+
Connection:
|
75
|
+
- keep-alive
|
76
|
+
body:
|
77
|
+
encoding: UTF-8
|
78
|
+
string: '{"status": "ok"}'
|
79
|
+
http_version:
|
80
|
+
recorded_at: Tue, 26 Jan 2016 20:04:36 GMT
|
81
|
+
- request:
|
82
|
+
method: post
|
83
|
+
uri: https://app.datadoghq.com/api/v1/series?api_key=<API_KEY>
|
84
|
+
body:
|
85
|
+
encoding: UTF-8
|
86
|
+
string: '{"series":[{"metric":"chef.resources.total","points":[[1453838676,0.0]],"type":"gauge","host":"chef.handler.datadog.test-tags","device":null}]}'
|
87
|
+
headers:
|
88
|
+
Accept-Encoding:
|
89
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
90
|
+
Accept:
|
91
|
+
- "*/*"
|
92
|
+
User-Agent:
|
93
|
+
- Ruby
|
94
|
+
Content-Type:
|
95
|
+
- application/json
|
96
|
+
response:
|
97
|
+
status:
|
98
|
+
code: 202
|
99
|
+
message: Accepted
|
100
|
+
headers:
|
101
|
+
Content-Type:
|
102
|
+
- text/json
|
103
|
+
Date:
|
104
|
+
- Tue, 26 Jan 2016 20:04:31 GMT
|
105
|
+
Dd-Pool:
|
106
|
+
- propjoe
|
107
|
+
Strict-Transport-Security:
|
108
|
+
- max-age=15724800;
|
109
|
+
X-Content-Type-Options:
|
110
|
+
- nosniff
|
111
|
+
Content-Length:
|
112
|
+
- '16'
|
113
|
+
Connection:
|
114
|
+
- keep-alive
|
115
|
+
body:
|
116
|
+
encoding: UTF-8
|
117
|
+
string: '{"status": "ok"}'
|
118
|
+
http_version:
|
119
|
+
recorded_at: Tue, 26 Jan 2016 20:04:36 GMT
|
120
|
+
- request:
|
121
|
+
method: post
|
122
|
+
uri: https://app.datadoghq.com/api/v1/series?api_key=<API_KEY>
|
123
|
+
body:
|
124
|
+
encoding: UTF-8
|
125
|
+
string: '{"series":[{"metric":"chef.resources.updated","points":[[1453838676,0.0]],"type":"gauge","host":"chef.handler.datadog.test-tags","device":null}]}'
|
126
|
+
headers:
|
127
|
+
Accept-Encoding:
|
128
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
129
|
+
Accept:
|
130
|
+
- "*/*"
|
131
|
+
User-Agent:
|
132
|
+
- Ruby
|
133
|
+
Content-Type:
|
134
|
+
- application/json
|
135
|
+
response:
|
136
|
+
status:
|
137
|
+
code: 202
|
138
|
+
message: Accepted
|
139
|
+
headers:
|
140
|
+
Content-Type:
|
141
|
+
- text/json
|
142
|
+
Date:
|
143
|
+
- Tue, 26 Jan 2016 20:04:31 GMT
|
144
|
+
Dd-Pool:
|
145
|
+
- propjoe
|
146
|
+
Strict-Transport-Security:
|
147
|
+
- max-age=15724800;
|
148
|
+
X-Content-Type-Options:
|
149
|
+
- nosniff
|
150
|
+
Content-Length:
|
151
|
+
- '16'
|
152
|
+
Connection:
|
153
|
+
- keep-alive
|
154
|
+
body:
|
155
|
+
encoding: UTF-8
|
156
|
+
string: '{"status": "ok"}'
|
157
|
+
http_version:
|
158
|
+
recorded_at: Tue, 26 Jan 2016 20:04:36 GMT
|
159
|
+
- request:
|
160
|
+
method: post
|
161
|
+
uri: https://app.datadoghq.com/api/v1/series?api_key=<API_KEY>
|
162
|
+
body:
|
163
|
+
encoding: UTF-8
|
164
|
+
string: '{"series":[{"metric":"chef.resources.elapsed_time","points":[[1453838676,5.0]],"type":"gauge","host":"chef.handler.datadog.test-tags","device":null}]}'
|
165
|
+
headers:
|
166
|
+
Accept-Encoding:
|
167
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
168
|
+
Accept:
|
169
|
+
- "*/*"
|
170
|
+
User-Agent:
|
171
|
+
- Ruby
|
172
|
+
Content-Type:
|
173
|
+
- application/json
|
174
|
+
response:
|
175
|
+
status:
|
176
|
+
code: 202
|
177
|
+
message: Accepted
|
178
|
+
headers:
|
179
|
+
Content-Type:
|
180
|
+
- text/json
|
181
|
+
Date:
|
182
|
+
- Tue, 26 Jan 2016 20:04:31 GMT
|
183
|
+
Dd-Pool:
|
184
|
+
- propjoe
|
185
|
+
Strict-Transport-Security:
|
186
|
+
- max-age=15724800;
|
187
|
+
X-Content-Type-Options:
|
188
|
+
- nosniff
|
189
|
+
Content-Length:
|
190
|
+
- '16'
|
191
|
+
Connection:
|
192
|
+
- keep-alive
|
193
|
+
body:
|
194
|
+
encoding: UTF-8
|
195
|
+
string: '{"status": "ok"}'
|
196
|
+
http_version:
|
197
|
+
recorded_at: Tue, 26 Jan 2016 20:04:36 GMT
|
198
|
+
- request:
|
199
|
+
method: post
|
200
|
+
uri: https://app.datadoghq.com/api/v1/events?api_key=<API_KEY>
|
201
|
+
body:
|
202
|
+
encoding: UTF-8
|
203
|
+
string: '{"msg_text":"Chef updated 0 resources out of 0 resources total.","date_happened":1458601273,"msg_title":"Chef
|
204
|
+
completed in 5 seconds on chef.handler.datadog.test-tags ","priority":"low","parent":null,"tags":["env:hostile","role:highlander","tag:the_one_and_only","tag:datacenter:my-cloud"],"aggregation_key":"chef.handler.datadog.test-tags","alert_type":"success","event_type":"config_management.run","source_type_name":"chef","title":"Chef
|
205
|
+
completed in 5 seconds on chef.handler.datadog.test-tags ","text":"Chef updated
|
206
|
+
0 resources out of 0 resources total.","host":"chef.handler.datadog.test-tags","device":null}'
|
207
|
+
headers:
|
208
|
+
Accept-Encoding:
|
209
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
210
|
+
Accept:
|
211
|
+
- "*/*"
|
212
|
+
User-Agent:
|
213
|
+
- Ruby
|
214
|
+
Content-Type:
|
215
|
+
- application/json
|
216
|
+
response:
|
217
|
+
status:
|
218
|
+
code: 202
|
219
|
+
message: Accepted
|
220
|
+
headers:
|
221
|
+
Content-Type:
|
222
|
+
- text/plain; charset=utf-8
|
223
|
+
Date:
|
224
|
+
- Tue, 26 Jan 2016 20:04:31 GMT
|
225
|
+
Dd-Pool:
|
226
|
+
- propjoe
|
227
|
+
Strict-Transport-Security:
|
228
|
+
- max-age=15724800;
|
229
|
+
X-Content-Type-Options:
|
230
|
+
- nosniff
|
231
|
+
Content-Length:
|
232
|
+
- '422'
|
233
|
+
Connection:
|
234
|
+
- keep-alive
|
235
|
+
body:
|
236
|
+
encoding: UTF-8
|
237
|
+
string: '{"status":"ok","event":{"id":461139917332183580,"title":"Chef completed
|
238
|
+
in 5 seconds on chef.handler.datadog.test-tags ","text":"Chef updated 0 resources
|
239
|
+
out of 0 resources total.","date_happened":1458601273,"handle":null,"priority":"low","related_event_id":null,"tags":["env:hostile","role:highlander","tag:the_one_and_only","tag:datacenter:my-cloud"],"url":"https://app.datadoghq.com/event/event?id=461139917332183580"}}'
|
240
|
+
http_version:
|
241
|
+
recorded_at: Mon, 21 Mar 2016 23:01:13 GMT
|
242
|
+
- request:
|
243
|
+
method: put
|
244
|
+
uri: https://app.datadoghq.com/api/v1/tags/hosts/chef.handler.datadog.test-tags?api_key=<API_KEY>&application_key=<APPLICATION_KEY>&source=chef
|
245
|
+
body:
|
246
|
+
encoding: UTF-8
|
247
|
+
string: '{"tags":["env:hostile","role:highlander","policy_group:the_policy_group","policy_name:the_policy_name"]}'
|
248
|
+
headers:
|
249
|
+
Accept-Encoding:
|
250
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
251
|
+
Accept:
|
252
|
+
- "*/*"
|
253
|
+
User-Agent:
|
254
|
+
- Ruby
|
255
|
+
Content-Type:
|
256
|
+
- application/json
|
257
|
+
response:
|
258
|
+
status:
|
259
|
+
code: 201
|
260
|
+
message: Created
|
261
|
+
headers:
|
262
|
+
Cache-Control:
|
263
|
+
- no-cache
|
264
|
+
Content-Type:
|
265
|
+
- application/json
|
266
|
+
Date:
|
267
|
+
- Tue, 26 Jan 2016 20:04:31 GMT
|
268
|
+
Dd-Pool:
|
269
|
+
- dogweb_sameorig
|
270
|
+
Pragma:
|
271
|
+
- no-cache
|
272
|
+
Strict-Transport-Security:
|
273
|
+
- max-age=15724800;
|
274
|
+
X-Content-Type-Options:
|
275
|
+
- nosniff
|
276
|
+
X-Dd-Debug:
|
277
|
+
- EhhnoBinSJ/mFOFx8c30LkIq8VSKonD/kqf6I2QWUws=
|
278
|
+
X-Frame-Options:
|
279
|
+
- SAMEORIGIN
|
280
|
+
Content-Length:
|
281
|
+
- '137'
|
282
|
+
Connection:
|
283
|
+
- keep-alive
|
284
|
+
body:
|
285
|
+
encoding: UTF-8
|
286
|
+
string: '{"host": "chef.handler.datadog.test-tags", "tags":["env:hostile","role:highlander","policy_group:the_policy_group","policy_name:the_policy_name"]}'
|
287
|
+
http_version:
|
288
|
+
recorded_at: Tue, 26 Jan 2016 20:04:36 GMT
|
289
|
+
recorded_with: VCR 3.0.1
|
@@ -0,0 +1,289 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://app.datadoghq.com/api/v1/series?api_key=<API_KEY>
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"series":[{"metric":"chef.run.success","points":[[1486079857,1.0]],"type":"counter","host":"chef.handler.datadog.test-tags","device":null}]}'
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
Content-Type:
|
17
|
+
- application/json
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 202
|
21
|
+
message: Accepted
|
22
|
+
headers:
|
23
|
+
Content-Type:
|
24
|
+
- text/json
|
25
|
+
Date:
|
26
|
+
- Thu, 02 Feb 2017 23:57:32 GMT
|
27
|
+
Dd-Pool:
|
28
|
+
- propjoe
|
29
|
+
Strict-Transport-Security:
|
30
|
+
- max-age=15724800;
|
31
|
+
X-Content-Type-Options:
|
32
|
+
- nosniff
|
33
|
+
Content-Length:
|
34
|
+
- '16'
|
35
|
+
Connection:
|
36
|
+
- keep-alive
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: '{"status": "ok"}'
|
40
|
+
http_version:
|
41
|
+
recorded_at: Thu, 02 Feb 2017 23:57:37 GMT
|
42
|
+
- request:
|
43
|
+
method: post
|
44
|
+
uri: https://app.datadoghq.com/api/v1/series?api_key=<API_KEY>
|
45
|
+
body:
|
46
|
+
encoding: UTF-8
|
47
|
+
string: '{"series":[{"metric":"chef.run.failure","points":[[1486079857,0.0]],"type":"counter","host":"chef.handler.datadog.test-tags","device":null}]}'
|
48
|
+
headers:
|
49
|
+
Accept-Encoding:
|
50
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
51
|
+
Accept:
|
52
|
+
- "*/*"
|
53
|
+
User-Agent:
|
54
|
+
- Ruby
|
55
|
+
Content-Type:
|
56
|
+
- application/json
|
57
|
+
response:
|
58
|
+
status:
|
59
|
+
code: 202
|
60
|
+
message: Accepted
|
61
|
+
headers:
|
62
|
+
Content-Type:
|
63
|
+
- text/json
|
64
|
+
Date:
|
65
|
+
- Thu, 02 Feb 2017 23:57:32 GMT
|
66
|
+
Dd-Pool:
|
67
|
+
- propjoe
|
68
|
+
Strict-Transport-Security:
|
69
|
+
- max-age=15724800;
|
70
|
+
X-Content-Type-Options:
|
71
|
+
- nosniff
|
72
|
+
Content-Length:
|
73
|
+
- '16'
|
74
|
+
Connection:
|
75
|
+
- keep-alive
|
76
|
+
body:
|
77
|
+
encoding: UTF-8
|
78
|
+
string: '{"status": "ok"}'
|
79
|
+
http_version:
|
80
|
+
recorded_at: Thu, 02 Feb 2017 23:57:37 GMT
|
81
|
+
- request:
|
82
|
+
method: post
|
83
|
+
uri: https://app.datadoghq.com/api/v1/series?api_key=<API_KEY>
|
84
|
+
body:
|
85
|
+
encoding: UTF-8
|
86
|
+
string: '{"series":[{"metric":"chef.resources.total","points":[[1486079857,0.0]],"type":"gauge","host":"chef.handler.datadog.test-tags","device":null}]}'
|
87
|
+
headers:
|
88
|
+
Accept-Encoding:
|
89
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
90
|
+
Accept:
|
91
|
+
- "*/*"
|
92
|
+
User-Agent:
|
93
|
+
- Ruby
|
94
|
+
Content-Type:
|
95
|
+
- application/json
|
96
|
+
response:
|
97
|
+
status:
|
98
|
+
code: 202
|
99
|
+
message: Accepted
|
100
|
+
headers:
|
101
|
+
Content-Type:
|
102
|
+
- text/json
|
103
|
+
Date:
|
104
|
+
- Thu, 02 Feb 2017 23:57:32 GMT
|
105
|
+
Dd-Pool:
|
106
|
+
- propjoe
|
107
|
+
Strict-Transport-Security:
|
108
|
+
- max-age=15724800;
|
109
|
+
X-Content-Type-Options:
|
110
|
+
- nosniff
|
111
|
+
Content-Length:
|
112
|
+
- '16'
|
113
|
+
Connection:
|
114
|
+
- keep-alive
|
115
|
+
body:
|
116
|
+
encoding: UTF-8
|
117
|
+
string: '{"status": "ok"}'
|
118
|
+
http_version:
|
119
|
+
recorded_at: Thu, 02 Feb 2017 23:57:37 GMT
|
120
|
+
- request:
|
121
|
+
method: post
|
122
|
+
uri: https://app.datadoghq.com/api/v1/series?api_key=<API_KEY>
|
123
|
+
body:
|
124
|
+
encoding: UTF-8
|
125
|
+
string: '{"series":[{"metric":"chef.resources.updated","points":[[1486079857,0.0]],"type":"gauge","host":"chef.handler.datadog.test-tags","device":null}]}'
|
126
|
+
headers:
|
127
|
+
Accept-Encoding:
|
128
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
129
|
+
Accept:
|
130
|
+
- "*/*"
|
131
|
+
User-Agent:
|
132
|
+
- Ruby
|
133
|
+
Content-Type:
|
134
|
+
- application/json
|
135
|
+
response:
|
136
|
+
status:
|
137
|
+
code: 202
|
138
|
+
message: Accepted
|
139
|
+
headers:
|
140
|
+
Content-Type:
|
141
|
+
- text/json
|
142
|
+
Date:
|
143
|
+
- Thu, 02 Feb 2017 23:57:32 GMT
|
144
|
+
Dd-Pool:
|
145
|
+
- propjoe
|
146
|
+
Strict-Transport-Security:
|
147
|
+
- max-age=15724800;
|
148
|
+
X-Content-Type-Options:
|
149
|
+
- nosniff
|
150
|
+
Content-Length:
|
151
|
+
- '16'
|
152
|
+
Connection:
|
153
|
+
- keep-alive
|
154
|
+
body:
|
155
|
+
encoding: UTF-8
|
156
|
+
string: '{"status": "ok"}'
|
157
|
+
http_version:
|
158
|
+
recorded_at: Thu, 02 Feb 2017 23:57:37 GMT
|
159
|
+
- request:
|
160
|
+
method: post
|
161
|
+
uri: https://app.datadoghq.com/api/v1/series?api_key=<API_KEY>
|
162
|
+
body:
|
163
|
+
encoding: UTF-8
|
164
|
+
string: '{"series":[{"metric":"chef.resources.elapsed_time","points":[[1486079857,5.0]],"type":"gauge","host":"chef.handler.datadog.test-tags","device":null}]}'
|
165
|
+
headers:
|
166
|
+
Accept-Encoding:
|
167
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
168
|
+
Accept:
|
169
|
+
- "*/*"
|
170
|
+
User-Agent:
|
171
|
+
- Ruby
|
172
|
+
Content-Type:
|
173
|
+
- application/json
|
174
|
+
response:
|
175
|
+
status:
|
176
|
+
code: 202
|
177
|
+
message: Accepted
|
178
|
+
headers:
|
179
|
+
Content-Type:
|
180
|
+
- text/json
|
181
|
+
Date:
|
182
|
+
- Thu, 02 Feb 2017 23:57:33 GMT
|
183
|
+
Dd-Pool:
|
184
|
+
- propjoe
|
185
|
+
Strict-Transport-Security:
|
186
|
+
- max-age=15724800;
|
187
|
+
X-Content-Type-Options:
|
188
|
+
- nosniff
|
189
|
+
Content-Length:
|
190
|
+
- '16'
|
191
|
+
Connection:
|
192
|
+
- keep-alive
|
193
|
+
body:
|
194
|
+
encoding: UTF-8
|
195
|
+
string: '{"status": "ok"}'
|
196
|
+
http_version:
|
197
|
+
recorded_at: Thu, 02 Feb 2017 23:57:37 GMT
|
198
|
+
- request:
|
199
|
+
method: post
|
200
|
+
uri: https://app.datadoghq.com/api/v1/events?api_key=<API_KEY>
|
201
|
+
body:
|
202
|
+
encoding: UTF-8
|
203
|
+
string: '{"msg_text":"Chef updated 0 resources out of 0 resources total.","date_happened":1486079857,"msg_title":"Chef
|
204
|
+
completed in 5 seconds on chef.handler.datadog.test-tags ","priority":"low","parent":null,"tags":["env:hostile","role:highlander"],"aggregation_key":"chef.handler.datadog.test-tags","alert_type":"success","event_type":"config_management.run","source_type_name":"chef","title":"Chef
|
205
|
+
completed in 5 seconds on chef.handler.datadog.test-tags ","text":"Chef updated
|
206
|
+
0 resources out of 0 resources total.","host":"chef.handler.datadog.test-tags","device":null}'
|
207
|
+
headers:
|
208
|
+
Accept-Encoding:
|
209
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
210
|
+
Accept:
|
211
|
+
- "*/*"
|
212
|
+
User-Agent:
|
213
|
+
- Ruby
|
214
|
+
Content-Type:
|
215
|
+
- application/json
|
216
|
+
response:
|
217
|
+
status:
|
218
|
+
code: 202
|
219
|
+
message: Accepted
|
220
|
+
headers:
|
221
|
+
Content-Type:
|
222
|
+
- text/plain; charset=utf-8
|
223
|
+
Date:
|
224
|
+
- Thu, 02 Feb 2017 23:57:33 GMT
|
225
|
+
Dd-Pool:
|
226
|
+
- propjoe
|
227
|
+
Strict-Transport-Security:
|
228
|
+
- max-age=15724800;
|
229
|
+
X-Content-Type-Options:
|
230
|
+
- nosniff
|
231
|
+
Content-Length:
|
232
|
+
- '373'
|
233
|
+
Connection:
|
234
|
+
- keep-alive
|
235
|
+
body:
|
236
|
+
encoding: UTF-8
|
237
|
+
string: '{"status":"ok","event":{"id":922154041878767484,"title":"Chef completed
|
238
|
+
in 5 seconds on chef.handler.datadog.test-tags ","text":"Chef updated 0 resources
|
239
|
+
out of 0 resources total.","date_happened":1486079857,"handle":null,"priority":"low","related_event_id":null,"tags":["env:hostile","role:highlander"],"url":"https://app.datadoghq.com/event/event?id=922154041878767484"}}'
|
240
|
+
http_version:
|
241
|
+
recorded_at: Thu, 02 Feb 2017 23:57:37 GMT
|
242
|
+
- request:
|
243
|
+
method: put
|
244
|
+
uri: https://app.datadoghq.com/api/v1/tags/hosts/chef.handler.datadog.test-tags?api_key=<API_KEY>&application_key=<APPLICATION_KEY>&source=chef
|
245
|
+
body:
|
246
|
+
encoding: UTF-8
|
247
|
+
string: '{"tags":["env:hostile","role:highlander"]}'
|
248
|
+
headers:
|
249
|
+
Accept-Encoding:
|
250
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
251
|
+
Accept:
|
252
|
+
- "*/*"
|
253
|
+
User-Agent:
|
254
|
+
- Ruby
|
255
|
+
Content-Type:
|
256
|
+
- application/json
|
257
|
+
response:
|
258
|
+
status:
|
259
|
+
code: 201
|
260
|
+
message: Created
|
261
|
+
headers:
|
262
|
+
Cache-Control:
|
263
|
+
- no-cache
|
264
|
+
Content-Type:
|
265
|
+
- application/json
|
266
|
+
Date:
|
267
|
+
- Thu, 02 Feb 2017 23:57:33 GMT
|
268
|
+
Dd-Pool:
|
269
|
+
- dogweb_sameorig
|
270
|
+
Pragma:
|
271
|
+
- no-cache
|
272
|
+
Strict-Transport-Security:
|
273
|
+
- max-age=15724800;
|
274
|
+
X-Content-Type-Options:
|
275
|
+
- nosniff
|
276
|
+
X-Dd-Debug:
|
277
|
+
- fTGHC5140Slzi8+VUckQeb7JtG5SB73QXNv+4EfnG/s=
|
278
|
+
X-Frame-Options:
|
279
|
+
- SAMEORIGIN
|
280
|
+
Content-Length:
|
281
|
+
- '82'
|
282
|
+
Connection:
|
283
|
+
- keep-alive
|
284
|
+
body:
|
285
|
+
encoding: UTF-8
|
286
|
+
string: '{"host":"chef.handler.datadog.test-tags","tags":["env:hostile","role:highlander"]}'
|
287
|
+
http_version:
|
288
|
+
recorded_at: Thu, 02 Feb 2017 23:57:37 GMT
|
289
|
+
recorded_with: VCR 3.0.3
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-handler-datadog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Fiedler
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2017-02-21 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: dogapi
|
@@ -92,16 +92,16 @@ dependencies:
|
|
92
92
|
name: rake
|
93
93
|
requirement: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- - "
|
95
|
+
- - "<"
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: '0'
|
97
|
+
version: '12.0'
|
98
98
|
type: :development
|
99
99
|
prerelease: false
|
100
100
|
version_requirements: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- - "
|
102
|
+
- - "<"
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: '0'
|
104
|
+
version: '12.0'
|
105
105
|
- !ruby/object:Gem::Dependency
|
106
106
|
name: rspec
|
107
107
|
requirement: !ruby/object:Gem::Requirement
|
@@ -204,6 +204,7 @@ files:
|
|
204
204
|
- lib/chef/handler/datadog_chef_events.rb
|
205
205
|
- lib/chef/handler/datadog_chef_metrics.rb
|
206
206
|
- lib/chef/handler/datadog_chef_tags.rb
|
207
|
+
- lib/chef/handler/datadog_util.rb
|
207
208
|
- lib/chef_handler_datadog.rb
|
208
209
|
- spec/datadog_spec.rb
|
209
210
|
- spec/spec_helper.rb
|
@@ -222,6 +223,10 @@ files:
|
|
222
223
|
- spec/support/cassettes/Chef_Handler_Datadog/reports_metrics_event_and_sets_tags/sets_tags/puts_the_tags_for_the_current_node.yml
|
223
224
|
- spec/support/cassettes/Chef_Handler_Datadog/resources/failure_during_compile_phase/only_emits_the_run_status_metrics.yml
|
224
225
|
- spec/support/cassettes/Chef_Handler_Datadog/resources/failure_during_compile_phase/posts_an_event.yml
|
226
|
+
- spec/support/cassettes/Chef_Handler_Datadog/resources/failure_during_compile_phase_with_an_elapsed_time_and_incomplete_resource_collection/only_emits_the_run_status_metrics.yml
|
227
|
+
- spec/support/cassettes/Chef_Handler_Datadog/resources/failure_during_compile_phase_with_an_elapsed_time_and_incomplete_resource_collection/posts_an_event.yml
|
228
|
+
- spec/support/cassettes/Chef_Handler_Datadog/tags/when_policy_tags_are_enabled/sets_the_policy_name_and_policy_group_tags.yml
|
229
|
+
- spec/support/cassettes/Chef_Handler_Datadog/tags/when_policy_tags_are_not_enabled/does_not_set_the_policy_name_and_policy_group_tags.yml
|
225
230
|
- spec/support/cassettes/Chef_Handler_Datadog/tags/when_specified/allows_for_empty_scope_prefix.yml
|
226
231
|
- spec/support/cassettes/Chef_Handler_Datadog/tags/when_specified/allows_for_empty_tag_prefix.yml
|
227
232
|
- spec/support/cassettes/Chef_Handler_Datadog/tags/when_specified/allows_for_user-specified_scope_prefix.yml
|
@@ -257,7 +262,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
257
262
|
version: '0'
|
258
263
|
requirements: []
|
259
264
|
rubyforge_project:
|
260
|
-
rubygems_version: 2.6.
|
265
|
+
rubygems_version: 2.6.8
|
261
266
|
signing_key:
|
262
267
|
specification_version: 4
|
263
268
|
summary: Chef Handler reports events and metrics to Datadog
|
@@ -279,6 +284,10 @@ test_files:
|
|
279
284
|
- spec/support/cassettes/Chef_Handler_Datadog/reports_metrics_event_and_sets_tags/sets_tags/puts_the_tags_for_the_current_node.yml
|
280
285
|
- spec/support/cassettes/Chef_Handler_Datadog/resources/failure_during_compile_phase/only_emits_the_run_status_metrics.yml
|
281
286
|
- spec/support/cassettes/Chef_Handler_Datadog/resources/failure_during_compile_phase/posts_an_event.yml
|
287
|
+
- spec/support/cassettes/Chef_Handler_Datadog/resources/failure_during_compile_phase_with_an_elapsed_time_and_incomplete_resource_collection/only_emits_the_run_status_metrics.yml
|
288
|
+
- spec/support/cassettes/Chef_Handler_Datadog/resources/failure_during_compile_phase_with_an_elapsed_time_and_incomplete_resource_collection/posts_an_event.yml
|
289
|
+
- spec/support/cassettes/Chef_Handler_Datadog/tags/when_policy_tags_are_enabled/sets_the_policy_name_and_policy_group_tags.yml
|
290
|
+
- spec/support/cassettes/Chef_Handler_Datadog/tags/when_policy_tags_are_not_enabled/does_not_set_the_policy_name_and_policy_group_tags.yml
|
282
291
|
- spec/support/cassettes/Chef_Handler_Datadog/tags/when_specified/allows_for_empty_scope_prefix.yml
|
283
292
|
- spec/support/cassettes/Chef_Handler_Datadog/tags/when_specified/allows_for_empty_tag_prefix.yml
|
284
293
|
- spec/support/cassettes/Chef_Handler_Datadog/tags/when_specified/allows_for_user-specified_scope_prefix.yml
|
@@ -294,4 +303,3 @@ test_files:
|
|
294
303
|
- spec/support/cassettes/Chef_Handler_Datadog/when_reporting_to_multiple_endpoints/emits_events/posts_an_event.yml
|
295
304
|
- spec/support/cassettes/Chef_Handler_Datadog/when_reporting_to_multiple_endpoints/emits_metrics/reports_metrics.yml
|
296
305
|
- spec/support/cassettes/Chef_Handler_Datadog/when_reporting_to_multiple_endpoints/sets_tags/puts_the_tags_for_the_current_node.yml
|
297
|
-
has_rdoc:
|