nagios-herald 0.0.2 → 0.0.3
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 -7
- data/.travis.yml +1 -0
- data/CHANGELOG.md +15 -1
- data/lib/nagios-herald/formatters/check_disk.rb +2 -2
- data/lib/nagios-herald/formatters/check_graphite_graph.rb +62 -0
- data/lib/nagios-herald/version.rb +2 -2
- metadata +94 -69
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
|
-
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MjBhMDg0MjY5NWYxMTk4NjMxOThjNjA5MzVkZWNmOTA4NGM2Y2FlYQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZDU0MTJhZWNjZWU1Mjc2ODIyMjgwOGEyMjIwNDdiNzU0MmFmZDU5ZQ==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
OTRiNDA4MGRjMGYxZjk4NzBhZTJhZjcwZjRkZTQ2ZjAwMjNjMjA4ZTlhYjll
|
10
|
+
MzZkY2ViODZjMDgwMGY4Nzg3YmQ2ZmNjNzMyNjE5MTlhNjRiNmM3NGFlNWIz
|
11
|
+
NmNjYTZlZTI5ODJmZWZmOTY2NjU2NTQwNjkzOTY0MDYzOWZiMmE=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ZGViMzUwY2NiZTMyMDMxNmJmMWU3MTdjNmVmNGJlZjI0ODUxYjFlN2JkNTQ1
|
14
|
+
ZDFkMzRkZjY0ZjEyY2EwMjUwOWI2ZjMzNGRlNGQ1MjMyNjA4M2YyNjRlMzQ4
|
15
|
+
ZjUwNTRkZDJhOWE0ODhkMDBlMzJlOTI0OTVkYjk1NWM3Y2IxOGY=
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
## 0.0.3 (10th Oct, 2014)
|
2
|
+
|
3
|
+
Features:
|
4
|
+
|
5
|
+
- check_graphite_graph formatter allows nagios-herald to embed Graphite graphs
|
6
|
+
|
7
|
+
Bug fixes:
|
8
|
+
|
9
|
+
- Corrected a regression in the check_disk formatter so that it generates a correct stack bar
|
10
|
+
|
11
|
+
Thanks:
|
12
|
+
|
13
|
+
- Shout out to @kdaniels for the new formatter and @v for fixing up the check_disk formatter!
|
14
|
+
|
1
15
|
## 0.0.2 (23rd June, 2014)
|
2
16
|
|
3
17
|
Features:
|
@@ -8,4 +22,4 @@ Features:
|
|
8
22
|
|
9
23
|
Features:
|
10
24
|
|
11
|
-
- Initial Release
|
25
|
+
- Initial Release
|
@@ -41,9 +41,9 @@ module NagiosHerald
|
|
41
41
|
# Returns the filename of the generated image or nil if the image was not generated.
|
42
42
|
def get_partitions_stackedbars_chart(partitions_data)
|
43
43
|
# Sort results by the most full partition
|
44
|
-
partitions_data.sort! { |a,b| a[
|
44
|
+
partitions_data.sort! { |a,b| a['free_percent'] <=> b['free_percent'] }
|
45
45
|
# generate argument as string
|
46
|
-
volumes_space_str = partitions_data.map {|x| "#{x[
|
46
|
+
volumes_space_str = partitions_data.map {|x| "#{x['partition']}=#{100 - x['free_percent'].to_i}"}.compact
|
47
47
|
output_file = File.join(@sandbox, "host_status.png")
|
48
48
|
command = ""
|
49
49
|
command += NagiosHerald::Util::get_script_path('draw_stack_bars')
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# CheckGraphiteGraph formatter
|
2
|
+
# Downloads the Graphite graph used to trigger the alert.
|
3
|
+
# Also downloads an historical graph of the last 24 hours for comparison.
|
4
|
+
|
5
|
+
module NagiosHerald
|
6
|
+
class Formatter
|
7
|
+
class CheckGraphiteGraph < NagiosHerald::Formatter
|
8
|
+
include NagiosHerald::Logging
|
9
|
+
|
10
|
+
# Public: Retrieves Graphite graphs for the endpoint the check queried.
|
11
|
+
# url - The URL for the Graphite endpoint the check queried.
|
12
|
+
# Returns the file names of all retrieved graphs. These can be attached to the message.
|
13
|
+
def get_graphite_graphs(url)
|
14
|
+
begin
|
15
|
+
graphite = NagiosHerald::Helpers::GraphiteGraph.new
|
16
|
+
show_historical = true
|
17
|
+
graphs = graphite.get_graph(url, @sandbox, show_historical)
|
18
|
+
return graphs
|
19
|
+
rescue Exception => e
|
20
|
+
logger.error "Exception encountered retrieving Graphite graphs - #{e.message}"
|
21
|
+
e.backtrace.each do |line|
|
22
|
+
logger.error "#{line}"
|
23
|
+
end
|
24
|
+
return []
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# Public: Overrides Formatter::Base#additional_info.
|
29
|
+
# Returns nothing. Updates the formatter content hash.
|
30
|
+
def additional_info
|
31
|
+
section = __method__
|
32
|
+
output = get_nagios_var("NAGIOS_#{@state_type}OUTPUT")
|
33
|
+
# Output is formmated like: Current value: 18094.25, warn threshold: 100.0, crit threshold: 1000.0
|
34
|
+
add_text(section, "Additional Info:\n #{unescape_text(output)}\n\n") if output
|
35
|
+
output_match = output.match(/Current value: (?<current_value>[^,]*), warn threshold: (?<warn_threshold>[^,]*), crit threshold: (?<crit_threshold>[^,]*)/)
|
36
|
+
if output_match
|
37
|
+
add_html(section, "Current value: <b><font color='red'>#{output_match['current_value']}</font></b>, warn threshold: <b>#{output_match['warn_threshold']}</b>, crit threshold: <b><font color='red'>#{output_match['crit_threshold']}</font></b><br><br>")
|
38
|
+
else
|
39
|
+
add_html(section, "<b>Additional Info</b>:<br> #{output}<br><br>") if output
|
40
|
+
end
|
41
|
+
|
42
|
+
# Get Graphite graphs.
|
43
|
+
# Extract the Graphite URL from NAGIOS_SERVICECHECKCOMMAND
|
44
|
+
service_check_command = get_nagios_var("NAGIOS_SERVICECHECKCOMMAND")
|
45
|
+
url = service_check_command.split(/!/)[-1].gsub(/'/, '')
|
46
|
+
graphite_graphs = get_graphite_graphs(url)
|
47
|
+
from_match = url.match(/from=(?<from>[^&]*)/)
|
48
|
+
if from_match
|
49
|
+
add_html(section, "<b>View from '#{from_match['from']}' ago</b><br>")
|
50
|
+
else
|
51
|
+
add_html(section, "<b>View from the time of the Nagios check</b><br>")
|
52
|
+
end
|
53
|
+
add_attachment graphite_graphs[0] # The original graph.
|
54
|
+
add_html(section, %Q(<img src="#{graphite_graphs[0]}" alt="graphite_graph" /><br><br>))
|
55
|
+
add_html(section, '<b>24-hour View</b><br>')
|
56
|
+
add_attachment graphite_graphs[1] # The 24-hour graph.
|
57
|
+
add_html(section, %Q(<img src="#{graphite_graphs[1]}" alt="graphite_graph" /><br><br>))
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -1,3 +1,3 @@
|
|
1
1
|
module NagiosHerald
|
2
|
-
VERSION = "0.0.
|
3
|
-
end
|
2
|
+
VERSION = "0.0.3"
|
3
|
+
end
|
metadata
CHANGED
@@ -1,87 +1,115 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: nagios-herald
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
|
-
authors:
|
6
|
+
authors:
|
7
7
|
- Ryan Frantz
|
8
8
|
- Nassim Kammah
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2014-10-10 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: app_conf
|
17
|
-
|
18
|
-
|
19
|
-
requirements:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
20
18
|
- - ~>
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version:
|
23
|
-
- -
|
24
|
-
- !ruby/object:Gem::Version
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0.4'
|
21
|
+
- - ! '>='
|
22
|
+
- !ruby/object:Gem::Version
|
25
23
|
version: 0.4.2
|
26
24
|
type: :runtime
|
27
|
-
version_requirements: *id001
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: choice
|
30
25
|
prerelease: false
|
31
|
-
|
32
|
-
requirements:
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
requirements:
|
28
|
+
- - ~>
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '0.4'
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.4.2
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: choice
|
36
|
+
requirement: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
33
38
|
- - ~>
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
version:
|
36
|
-
- -
|
37
|
-
- !ruby/object:Gem::Version
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.1'
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
38
43
|
version: 0.1.6
|
39
44
|
type: :runtime
|
40
|
-
version_requirements: *id002
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: mail
|
43
45
|
prerelease: false
|
44
|
-
|
45
|
-
requirements:
|
46
|
+
version_requirements: !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
48
|
+
- - ~>
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '0.1'
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.1.6
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: mail
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
46
58
|
- - ~>
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version:
|
49
|
-
- -
|
50
|
-
- !ruby/object:Gem::Version
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '2.5'
|
61
|
+
- - ! '>='
|
62
|
+
- !ruby/object:Gem::Version
|
51
63
|
version: 2.5.4
|
52
64
|
type: :runtime
|
53
|
-
version_requirements: *id003
|
54
|
-
- !ruby/object:Gem::Dependency
|
55
|
-
name: chef
|
56
65
|
prerelease: false
|
57
|
-
|
58
|
-
requirements:
|
59
|
-
- -
|
60
|
-
- !ruby/object:Gem::Version
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ~>
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '2.5'
|
71
|
+
- - ! '>='
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 2.5.4
|
74
|
+
- !ruby/object:Gem::Dependency
|
75
|
+
name: chef
|
76
|
+
requirement: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ! '>='
|
79
|
+
- !ruby/object:Gem::Version
|
61
80
|
version: 11.8.2
|
62
81
|
type: :runtime
|
63
|
-
version_requirements: *id004
|
64
|
-
- !ruby/object:Gem::Dependency
|
65
|
-
name: elasticsearch
|
66
82
|
prerelease: false
|
67
|
-
|
68
|
-
requirements:
|
69
|
-
- -
|
70
|
-
- !ruby/object:Gem::Version
|
83
|
+
version_requirements: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: 11.8.2
|
88
|
+
- !ruby/object:Gem::Dependency
|
89
|
+
name: elasticsearch
|
90
|
+
requirement: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ! '>='
|
93
|
+
- !ruby/object:Gem::Version
|
71
94
|
version: 1.0.2
|
72
95
|
type: :runtime
|
73
|
-
|
74
|
-
|
75
|
-
|
96
|
+
prerelease: false
|
97
|
+
version_requirements: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 1.0.2
|
102
|
+
description: ! " A project that aims to make it easy to provide context in Nagios
|
103
|
+
alerts.\n The project consists of a core notifier script that can be called with
|
104
|
+
a formatter\n to tailor the content of the message sent to an operator.\n"
|
105
|
+
email:
|
76
106
|
- rfrantz@etsy.com
|
77
107
|
- nkammah@etsy.com
|
78
|
-
executables:
|
108
|
+
executables:
|
79
109
|
- nagios-herald
|
80
110
|
extensions: []
|
81
|
-
|
82
111
|
extra_rdoc_files: []
|
83
|
-
|
84
|
-
files:
|
112
|
+
files:
|
85
113
|
- .gitignore
|
86
114
|
- .travis.yml
|
87
115
|
- CHANGELOG.md
|
@@ -128,6 +156,7 @@ files:
|
|
128
156
|
- lib/nagios-herald/formatters/base.rb
|
129
157
|
- lib/nagios-herald/formatters/check_cpu.rb
|
130
158
|
- lib/nagios-herald/formatters/check_disk.rb
|
159
|
+
- lib/nagios-herald/formatters/check_graphite_graph.rb
|
131
160
|
- lib/nagios-herald/formatters/check_logstash.rb
|
132
161
|
- lib/nagios-herald/formatters/check_memory.rb
|
133
162
|
- lib/nagios-herald/formatters/example.rb
|
@@ -173,32 +202,28 @@ files:
|
|
173
202
|
- test/unit/test_message_email.rb
|
174
203
|
- test/unit/test_message_pager.rb
|
175
204
|
homepage: https://github.com/etsy/nagios-herald
|
176
|
-
licenses:
|
205
|
+
licenses:
|
177
206
|
- MIT
|
178
207
|
metadata: {}
|
179
|
-
|
180
208
|
post_install_message: Have fun and write your own formatters!
|
181
209
|
rdoc_options: []
|
182
|
-
|
183
|
-
require_paths:
|
210
|
+
require_paths:
|
184
211
|
- lib
|
185
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
186
|
-
requirements:
|
187
|
-
- -
|
188
|
-
- !ruby/object:Gem::Version
|
212
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
213
|
+
requirements:
|
214
|
+
- - ! '>='
|
215
|
+
- !ruby/object:Gem::Version
|
189
216
|
version: 1.9.2
|
190
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
191
|
-
requirements:
|
192
|
-
- -
|
193
|
-
- !ruby/object:Gem::Version
|
194
|
-
version:
|
217
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
218
|
+
requirements:
|
219
|
+
- - ! '>='
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: '0'
|
195
222
|
requirements: []
|
196
|
-
|
197
223
|
rubyforge_project:
|
198
224
|
rubygems_version: 2.2.2
|
199
225
|
signing_key:
|
200
226
|
specification_version: 4
|
201
227
|
summary: A project that aims to make it easy to provide context in Nagios alerts.
|
202
228
|
test_files: []
|
203
|
-
|
204
229
|
has_rdoc:
|