chef-handler-datadog 0.1.2 → 0.2.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 +15 -0
- data/.gitignore +5 -0
- data/.travis.yml +0 -1
- data/CHANGELOG.md +17 -0
- data/README.md +2 -2
- data/Rakefile +7 -13
- data/chef-handler-datadog.gemspec +4 -4
- data/lib/chef-handler-datadog.rb +1 -1
- data/lib/chef/handler/datadog.rb +14 -10
- metadata +29 -44
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YzlmYzNiOWYxODgxODhmZjNmY2Y3OTE1MGQ1MTlhMjMxNTA4M2NiZA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ODljYmFlYjg5Y2UyMDQ2OWQ2NjlkNzM4OGFkN2FkYmM5ZmEwMDQ1Yg==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
YzNiODIxMTI1NTg1ZjNmYTdmZWEyMDVjYzRhOTY1OGViMjc5MDYyZDczNDBl
|
10
|
+
ZTVlYzM3YzFkZGI3OWUxMjlmNjcyNzMzNjMzMzQ3YmQyYTJhOWMxNmY3ZjU4
|
11
|
+
ZjA1MjFlMGZmY2MyMGJmZmUwZGEyYTI1MTIzNWM5MDU5NTIwNzE=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NGNjYzFmNWI4OTJlNzZlYzFmMjA2NmFmYTRhZTc1M2YwMTg4MDMxZjBkYmJh
|
14
|
+
ZmNkMGY0ZTdlMjhlODAzODM4NGE3M2FkNDQxNGQ5NzNiMjAwNzgwNDc4ZGUz
|
15
|
+
MTE4NzZmYzM1YjQzMGQ2MWE2Yjc5MWEwNDQxZTk1MjAxOGE1MWI=
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
Changes
|
2
|
+
=======
|
3
|
+
# 0.2.0 / 2013-10-31
|
4
|
+
|
5
|
+
* [BUGFIX] moved Chef gem dependency to development, [#34][] [@miketheman][]
|
6
|
+
* [BUGFIX] redis python client check was not properly checking the default version, [@remh][]
|
7
|
+
* [MISC] tailor 1.3.1 caught some cosmetic issue, [@alq][]
|
8
|
+
* [MISC] fixed a few repo & build issues, [@miketheman][]
|
9
|
+
|
10
|
+
# 0.1.2 / 2013-04-03
|
11
|
+
|
12
|
+
And all other versions were prior to this. See git history for more.
|
13
|
+
<!--- The following link definition list is generated by PimpMyChangelog --->
|
14
|
+
[#34]: https://github.com/DataDog/chef-handler-datadog/issues/34
|
15
|
+
[@alq]: https://github.com/alq
|
16
|
+
[@miketheman]: https://github.com/miketheman
|
17
|
+
[@remh]: https://github.com/remh
|
data/README.md
CHANGED
@@ -6,7 +6,7 @@ An Exception and Report Handler for Chef.
|
|
6
6
|
|
7
7
|
## Using chef-handler-datadog
|
8
8
|
|
9
|
-
The [Chef
|
9
|
+
The Datadog Docs on [Chef](http://docs.datadoghq.com/guides/chef/#deployhandler) has detailed instructions.
|
10
10
|
|
11
11
|
## Contributing to chef-handler-datadog
|
12
12
|
|
@@ -20,4 +20,4 @@ The [Chef integration page](https://app.datadoghq.com/accounts/settings#integrat
|
|
20
20
|
|
21
21
|
## Copyright
|
22
22
|
|
23
|
-
Copyright (c) 2012 Datadog, Inc. See LICENSE.txt for further details.
|
23
|
+
Copyright (c) 2012-2013 Datadog, Inc. See LICENSE.txt for further details.
|
data/Rakefile
CHANGED
@@ -3,21 +3,15 @@
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'bundler/gem_tasks'
|
5
5
|
|
6
|
-
require '
|
7
|
-
|
8
|
-
test.libs << 'lib' << 'test'
|
9
|
-
test.pattern = 'test/**/test_*.rb'
|
10
|
-
test.verbose = true
|
11
|
-
end
|
6
|
+
require 'rspec/core/rake_task'
|
7
|
+
require 'tailor/rake_task'
|
12
8
|
|
13
9
|
task :default => :test
|
14
10
|
|
15
|
-
|
16
|
-
RDoc::Task.new do |rdoc|
|
17
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
11
|
+
RSpec::Core::RakeTask.new(:spec)
|
18
12
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
13
|
+
Tailor::RakeTask.new do |task|
|
14
|
+
task.file_set('lib/**/*.rb', "code") do |style|
|
15
|
+
style.max_line_length 160, :level => :warn
|
16
|
+
end
|
23
17
|
end
|
@@ -13,13 +13,13 @@ Gem::Specification.new do |gem|
|
|
13
13
|
gem.require_paths = ['lib']
|
14
14
|
gem.extra_rdoc_files = ['README.md', 'LICENSE.txt']
|
15
15
|
|
16
|
-
gem.add_dependency 'chef', ">= 10", "<= 12"
|
17
16
|
gem.add_dependency 'dogapi', ">= 1.2"
|
18
17
|
|
19
|
-
gem.add_development_dependency 'rake'
|
20
|
-
gem.add_development_dependency 'shoulda'
|
21
18
|
gem.add_development_dependency 'bundler'
|
22
|
-
gem.add_development_dependency '
|
19
|
+
gem.add_development_dependency 'chef', ">= 10", "<= 12"
|
20
|
+
gem.add_development_dependency 'rake'
|
21
|
+
gem.add_development_dependency 'rspec'
|
22
|
+
gem.add_development_dependency 'tailor', '~> 1.3'
|
23
23
|
gem.add_development_dependency 'travis-lint'
|
24
24
|
|
25
25
|
gem.authors = ["Mike Fiedler", "Adam Jacob", "Alexis Le-Quoc"]
|
data/lib/chef-handler-datadog.rb
CHANGED
data/lib/chef/handler/datadog.rb
CHANGED
@@ -20,6 +20,7 @@ class Chef
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def report
|
23
|
+
# resolve correct hostname
|
23
24
|
hostname = run_status.node.name
|
24
25
|
if @use_ec2_instance_id && run_status.node.attribute?("ec2") && run_status.node.ec2.attribute?("instance_id")
|
25
26
|
hostname = run_status.node.ec2.instance_id
|
@@ -35,6 +36,7 @@ class Chef
|
|
35
36
|
Chef::Log.error("Could not send metrics to Datadog. Connection error:\n" + e)
|
36
37
|
end
|
37
38
|
|
39
|
+
# Build the correct event
|
38
40
|
event_title = ""
|
39
41
|
run_time = pluralize(run_status.elapsed_time, "second")
|
40
42
|
if run_status.success?
|
@@ -65,13 +67,14 @@ class Chef
|
|
65
67
|
begin
|
66
68
|
# Send the Event data
|
67
69
|
evt = @dog.emit_event(Dogapi::Event.new(event_data,
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
70
|
+
:msg_title => event_title,
|
71
|
+
:event_type => 'config_management.run',
|
72
|
+
:event_object => hostname,
|
73
|
+
:alert_type => alert_type,
|
74
|
+
:priority => event_priority,
|
75
|
+
:source_type_name => 'chef'
|
76
|
+
), :host => hostname)
|
77
|
+
|
75
78
|
begin
|
76
79
|
# FIXME nice-to-have: abstract format of return value away a bit
|
77
80
|
# in dogapi directly. See https://github.com/DataDog/dogapi-rb/issues/18
|
@@ -110,7 +113,7 @@ class Chef
|
|
110
113
|
if @application_key.nil?
|
111
114
|
Chef::Log.warn("You need an application key to let Chef tag your nodes " \
|
112
115
|
"in Datadog. Visit https://app.datadoghq.com/account/settings#api to " \
|
113
|
-
|
116
|
+
"create one and update your datadog attributes in the datadog cookbook."
|
114
117
|
)
|
115
118
|
else
|
116
119
|
# Replace all tags with the new tags
|
@@ -121,7 +124,7 @@ class Chef
|
|
121
124
|
Chef::Log.warn("Unexpected response from Datadog Event API: #{evt}")
|
122
125
|
else
|
123
126
|
if rc[0].to_i / 100 != 2
|
124
|
-
Chef::Log.warn("Could not submit #{
|
127
|
+
Chef::Log.warn("Could not submit #{new_host_tags} tags for #{hostname} to Datadog: #{evt}")
|
125
128
|
else
|
126
129
|
Chef::Log.debug("Successfully updated #{hostname}'s tags to #{new_host_tags.join(', ')}")
|
127
130
|
end
|
@@ -156,8 +159,9 @@ class Chef
|
|
156
159
|
end
|
157
160
|
end
|
158
161
|
|
162
|
+
# TODO: Remove this once confirmed that Chef 0.9.x is no longer used.
|
159
163
|
## This function is to mimic behavior built into a later version of chef than 0.9.x
|
160
|
-
## Source is here: https://github.com/opscode/chef/blob/
|
164
|
+
## Source is here: https://github.com/opscode/chef/blob/19bc40b148f3862ce88d044e600d01a9838c60bc/chef/lib/chef/resource.rb#L375-L384
|
161
165
|
## Including this based on help from schisamo
|
162
166
|
def defined_at(resource)
|
163
167
|
cookbook_name = resource.cookbook_name
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-handler-datadog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Mike Fiedler
|
@@ -11,66 +10,59 @@ authors:
|
|
11
10
|
autorequire:
|
12
11
|
bindir: bin
|
13
12
|
cert_chain: []
|
14
|
-
date: 2013-
|
13
|
+
date: 2013-10-31 00:00:00.000000000 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
|
-
name:
|
16
|
+
name: dogapi
|
18
17
|
requirement: !ruby/object:Gem::Requirement
|
19
|
-
none: false
|
20
18
|
requirements:
|
21
19
|
- - ! '>='
|
22
20
|
- !ruby/object:Gem::Version
|
23
|
-
version: '
|
24
|
-
- - <=
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '12'
|
21
|
+
version: '1.2'
|
27
22
|
type: :runtime
|
28
23
|
prerelease: false
|
29
24
|
version_requirements: !ruby/object:Gem::Requirement
|
30
|
-
none: false
|
31
25
|
requirements:
|
32
26
|
- - ! '>='
|
33
27
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
35
|
-
- - <=
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '12'
|
28
|
+
version: '1.2'
|
38
29
|
- !ruby/object:Gem::Dependency
|
39
|
-
name:
|
30
|
+
name: bundler
|
40
31
|
requirement: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
32
|
requirements:
|
43
33
|
- - ! '>='
|
44
34
|
- !ruby/object:Gem::Version
|
45
|
-
version: '
|
46
|
-
type: :
|
35
|
+
version: '0'
|
36
|
+
type: :development
|
47
37
|
prerelease: false
|
48
38
|
version_requirements: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
39
|
requirements:
|
51
40
|
- - ! '>='
|
52
41
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
42
|
+
version: '0'
|
54
43
|
- !ruby/object:Gem::Dependency
|
55
|
-
name:
|
44
|
+
name: chef
|
56
45
|
requirement: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
46
|
requirements:
|
59
47
|
- - ! '>='
|
60
48
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
49
|
+
version: '10'
|
50
|
+
- - <=
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '12'
|
62
53
|
type: :development
|
63
54
|
prerelease: false
|
64
55
|
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
56
|
requirements:
|
67
57
|
- - ! '>='
|
68
58
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
59
|
+
version: '10'
|
60
|
+
- - <=
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '12'
|
70
63
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
64
|
+
name: rake
|
72
65
|
requirement: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
66
|
requirements:
|
75
67
|
- - ! '>='
|
76
68
|
- !ruby/object:Gem::Version
|
@@ -78,15 +70,13 @@ dependencies:
|
|
78
70
|
type: :development
|
79
71
|
prerelease: false
|
80
72
|
version_requirements: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
73
|
requirements:
|
83
74
|
- - ! '>='
|
84
75
|
- !ruby/object:Gem::Version
|
85
76
|
version: '0'
|
86
77
|
- !ruby/object:Gem::Dependency
|
87
|
-
name:
|
78
|
+
name: rspec
|
88
79
|
requirement: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
80
|
requirements:
|
91
81
|
- - ! '>='
|
92
82
|
- !ruby/object:Gem::Version
|
@@ -94,31 +84,27 @@ dependencies:
|
|
94
84
|
type: :development
|
95
85
|
prerelease: false
|
96
86
|
version_requirements: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
87
|
requirements:
|
99
88
|
- - ! '>='
|
100
89
|
- !ruby/object:Gem::Version
|
101
90
|
version: '0'
|
102
91
|
- !ruby/object:Gem::Dependency
|
103
|
-
name:
|
92
|
+
name: tailor
|
104
93
|
requirement: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
94
|
requirements:
|
107
|
-
- -
|
95
|
+
- - ~>
|
108
96
|
- !ruby/object:Gem::Version
|
109
|
-
version: '
|
97
|
+
version: '1.3'
|
110
98
|
type: :development
|
111
99
|
prerelease: false
|
112
100
|
version_requirements: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
101
|
requirements:
|
115
|
-
- -
|
102
|
+
- - ~>
|
116
103
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
104
|
+
version: '1.3'
|
118
105
|
- !ruby/object:Gem::Dependency
|
119
106
|
name: travis-lint
|
120
107
|
requirement: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
108
|
requirements:
|
123
109
|
- - ! '>='
|
124
110
|
- !ruby/object:Gem::Version
|
@@ -126,7 +112,6 @@ dependencies:
|
|
126
112
|
type: :development
|
127
113
|
prerelease: false
|
128
114
|
version_requirements: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
115
|
requirements:
|
131
116
|
- - ! '>='
|
132
117
|
- !ruby/object:Gem::Version
|
@@ -143,6 +128,7 @@ extra_rdoc_files:
|
|
143
128
|
files:
|
144
129
|
- .gitignore
|
145
130
|
- .travis.yml
|
131
|
+
- CHANGELOG.md
|
146
132
|
- Gemfile
|
147
133
|
- LICENSE.txt
|
148
134
|
- README.md
|
@@ -157,27 +143,26 @@ files:
|
|
157
143
|
homepage: http://www.datadoghq.com/
|
158
144
|
licenses:
|
159
145
|
- BSD
|
146
|
+
metadata: {}
|
160
147
|
post_install_message:
|
161
148
|
rdoc_options: []
|
162
149
|
require_paths:
|
163
150
|
- lib
|
164
151
|
required_ruby_version: !ruby/object:Gem::Requirement
|
165
|
-
none: false
|
166
152
|
requirements:
|
167
153
|
- - ! '>='
|
168
154
|
- !ruby/object:Gem::Version
|
169
155
|
version: '0'
|
170
156
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
|
-
none: false
|
172
157
|
requirements:
|
173
158
|
- - ! '>='
|
174
159
|
- !ruby/object:Gem::Version
|
175
160
|
version: '0'
|
176
161
|
requirements: []
|
177
162
|
rubyforge_project:
|
178
|
-
rubygems_version:
|
163
|
+
rubygems_version: 2.0.5
|
179
164
|
signing_key:
|
180
|
-
specification_version:
|
165
|
+
specification_version: 4
|
181
166
|
summary: Chef Handler for DataDog events and metrics
|
182
167
|
test_files:
|
183
168
|
- test/helper.rb
|