chef-handler-datadog 0.0.5 → 0.0.6
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.
- data/VERSION +1 -1
- data/lib/chef-handler-datadog.rb +25 -7
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.6
|
data/lib/chef-handler-datadog.rb
CHANGED
@@ -4,8 +4,8 @@ require 'chef/handler'
|
|
4
4
|
require 'dogapi'
|
5
5
|
|
6
6
|
class Datadog < Chef::Handler
|
7
|
-
|
8
|
-
# For the tags to work, the client must have created an Application Key on the
|
7
|
+
|
8
|
+
# For the tags to work, the client must have created an Application Key on the
|
9
9
|
# "Account Settings" page here: https://app.datadoghq.com/account/settings
|
10
10
|
# It should be passed along from the node/role/environemnt attributes, as the default is nil.
|
11
11
|
def initialize(opts = {})
|
@@ -23,7 +23,7 @@ class Datadog < Chef::Handler
|
|
23
23
|
rescue Errno::ECONNREFUSED, Errno::ETIMEDOUT => e
|
24
24
|
Chef::Log.error("Could not send metrics to Datadog. Connection error:\n" + e)
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
event_title = ""
|
28
28
|
run_time = pluralize(run_status.elapsed_time, "second")
|
29
29
|
if run_status.success?
|
@@ -38,7 +38,7 @@ class Datadog < Chef::Handler
|
|
38
38
|
if run_status.updated_resources.length.to_i > 0
|
39
39
|
event_data << "\n@@@\n"
|
40
40
|
run_status.updated_resources.each do |r|
|
41
|
-
event_data << "- #{r.to_s} (#{r
|
41
|
+
event_data << "- #{r.to_s} (#{defined_at(r)})\n"
|
42
42
|
end
|
43
43
|
event_data << "\n@@@\n"
|
44
44
|
end
|
@@ -53,8 +53,8 @@ class Datadog < Chef::Handler
|
|
53
53
|
# Submit the details back to Datadog
|
54
54
|
begin
|
55
55
|
# Send the Event data
|
56
|
-
@dog.emit_event(Dogapi::Event.new(event_data,
|
57
|
-
:msg_title => event_title,
|
56
|
+
@dog.emit_event(Dogapi::Event.new(event_data,
|
57
|
+
:msg_title => event_title,
|
58
58
|
:event_type => 'config_management.run',
|
59
59
|
:event_object => run_status.node.name,
|
60
60
|
:alert_type => alert_type,
|
@@ -100,4 +100,22 @@ class Datadog < Chef::Handler
|
|
100
100
|
"#{number} #{noun}s"
|
101
101
|
end
|
102
102
|
end
|
103
|
-
|
103
|
+
|
104
|
+
## This function is to mimic behavior built into a later version of chef than 0.9.x
|
105
|
+
## Source is here: https://github.com/opscode/chef/blob/master/chef/lib/chef/resource.rb#L415-424
|
106
|
+
## Including this based on help from schisamo
|
107
|
+
def defined_at(resource)
|
108
|
+
cookbook_name = resource.cookbook_name
|
109
|
+
recipe_name = resource.recipe_name
|
110
|
+
source_line = resource.source_line
|
111
|
+
if cookbook_name && recipe_name && source_line
|
112
|
+
"#{cookbook_name}::#{recipe_name} line #{source_line.split(':')[1]}"
|
113
|
+
elsif source_line
|
114
|
+
file, line_no = source_line.split(':')
|
115
|
+
"#{file} line #{line_no}"
|
116
|
+
else
|
117
|
+
"dynamically defined"
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-handler-datadog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 6
|
10
|
+
version: 0.0.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Mike Fiedler
|