sensu-plugins-slack 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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/CHANGELOG.md +4 -2
- data/README.md +9 -1
- data/bin/handler-slack.rb +56 -7
- data/lib/sensu-plugins-slack/version.rb +1 -1
- metadata +18 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70a744098aa871953bf98783dfd885a7cef8a199
|
4
|
+
data.tar.gz: 9bb145083bcf9c684d03ff2a9da4bd1e70c56bcb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c8d89bc5c0f568c810c0405722b155ee1a339f6790917e93fb7986e9c4626082f4462367769734a2bcc7f84added5619b642e439a6f3e5137ab76e6342545eb
|
7
|
+
data.tar.gz: 2e4c4f82842d60548c432d87775f2bd8f1fe3f1e191b649138e996696c1991a01c52cba8445a62a2571b2f3e19421cf0e249f7772694a36e6faed15550a7160f
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
CHANGED
@@ -5,8 +5,11 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
|
|
5
5
|
|
6
6
|
## Unreleased][unreleased]
|
7
7
|
|
8
|
-
## [0.0.
|
8
|
+
## [0.0.3] - 2015-06-03
|
9
|
+
### Added
|
10
|
+
-additional functionality to slack hander to improve generated output
|
9
11
|
|
12
|
+
## [0.0.2] - 2015-06-03
|
10
13
|
### Fixed
|
11
14
|
- added binstubs
|
12
15
|
|
@@ -14,6 +17,5 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
|
|
14
17
|
- removed cruft from /lib
|
15
18
|
|
16
19
|
## 0.0.1 - 2015-05-29
|
17
|
-
|
18
20
|
### Added
|
19
21
|
- initial release
|
data/README.md
CHANGED
@@ -20,7 +20,15 @@
|
|
20
20
|
"channel": "#notifications-room, optional defaults to slack defined",
|
21
21
|
"message_prefix": "optional prefix - can be used for mentions",
|
22
22
|
"surround": "optional - can be used for bold(*), italics(_), code(`) and preformatted(```)",
|
23
|
-
"bot_name": "optional bot name, defaults to slack defined"
|
23
|
+
"bot_name": "optional bot name, defaults to slack defined",
|
24
|
+
"template": "/some/path/to/template.erb",
|
25
|
+
"fields": [
|
26
|
+
"list",
|
27
|
+
"of",
|
28
|
+
"optional",
|
29
|
+
"clientkeys",
|
30
|
+
"to_render"
|
31
|
+
]
|
24
32
|
}
|
25
33
|
}
|
26
34
|
```
|
data/bin/handler-slack.rb
CHANGED
@@ -13,6 +13,7 @@
|
|
13
13
|
|
14
14
|
require 'sensu-handler'
|
15
15
|
require 'json'
|
16
|
+
require 'erubis'
|
16
17
|
|
17
18
|
class Slack < Sensu::Handler
|
18
19
|
option :json_config,
|
@@ -26,7 +27,11 @@ class Slack < Sensu::Handler
|
|
26
27
|
end
|
27
28
|
|
28
29
|
def slack_channel
|
29
|
-
|
30
|
+
if @event['check']['slack_channel']
|
31
|
+
@event['check']['slack_channel']
|
32
|
+
else
|
33
|
+
get_setting('channel')
|
34
|
+
end
|
30
35
|
end
|
31
36
|
|
32
37
|
def slack_message_prefix
|
@@ -41,6 +46,14 @@ class Slack < Sensu::Handler
|
|
41
46
|
get_setting('surround')
|
42
47
|
end
|
43
48
|
|
49
|
+
def message_template
|
50
|
+
get_setting('template')
|
51
|
+
end
|
52
|
+
|
53
|
+
def fields
|
54
|
+
get_setting('fields')
|
55
|
+
end
|
56
|
+
|
44
57
|
def incident_key
|
45
58
|
@event['client']['name'] + '/' + @event['check']['name']
|
46
59
|
end
|
@@ -55,11 +68,20 @@ class Slack < Sensu::Handler
|
|
55
68
|
end
|
56
69
|
|
57
70
|
def build_description
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
71
|
+
if message_template && File.readable?(message_template)
|
72
|
+
template = File.read(message_template)
|
73
|
+
else
|
74
|
+
template = '''<%=
|
75
|
+
[
|
76
|
+
@event["check"]["output"],
|
77
|
+
@event["client"]["address"],
|
78
|
+
@event["client"]["subscriptions"].join(",")
|
79
|
+
].join(" : ")
|
80
|
+
%>
|
81
|
+
'''
|
82
|
+
end
|
83
|
+
eruby = Erubis::Eruby.new(template)
|
84
|
+
eruby.result(binding)
|
63
85
|
end
|
64
86
|
|
65
87
|
def post_data(notice)
|
@@ -85,11 +107,28 @@ class Slack < Sensu::Handler
|
|
85
107
|
end
|
86
108
|
|
87
109
|
def payload(notice)
|
110
|
+
client_fields = []
|
111
|
+
|
112
|
+
unless fields.nil?
|
113
|
+
fields.each do |field|
|
114
|
+
# arbritary based on what I feel like
|
115
|
+
# -vjanelle
|
116
|
+
is_short = true unless @event['client'][field].length > 50
|
117
|
+
client_fields << {
|
118
|
+
title: field,
|
119
|
+
value: @event['client'][field],
|
120
|
+
short: is_short
|
121
|
+
}
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
88
125
|
{
|
89
126
|
icon_url: 'http://sensuapp.org/img/sensu_logo_large-c92d73db.png',
|
90
127
|
attachments: [{
|
128
|
+
title: "#{@event['client']['address']} - #{translate_status}",
|
91
129
|
text: [slack_message_prefix, notice].compact.join(' '),
|
92
|
-
color: color
|
130
|
+
color: color,
|
131
|
+
fields: client_fields
|
93
132
|
}]
|
94
133
|
}.tap do |payload|
|
95
134
|
payload[:channel] = slack_channel if slack_channel
|
@@ -110,4 +149,14 @@ class Slack < Sensu::Handler
|
|
110
149
|
def check_status
|
111
150
|
@event['check']['status']
|
112
151
|
end
|
152
|
+
|
153
|
+
def translate_status
|
154
|
+
status = {
|
155
|
+
0 => :OK,
|
156
|
+
1 => :WARNING,
|
157
|
+
2 => :CRITICAL,
|
158
|
+
3 => :UNKNOWN
|
159
|
+
}
|
160
|
+
status[check_status.to_i]
|
161
|
+
end
|
113
162
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugins-slack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sensu-Plugins and contributors
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
8sHuVruarogxxKPBzlL2is4EUb6oN/RdpGx2l4254+nyR+abg//Ed27Ym0PkB4lk
|
31
31
|
HP0m8WSjZmFr109pE/sVsM5jtOCvogyujQOjNVGN4gz1wwPr
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date: 2015-06-
|
33
|
+
date: 2015-06-27 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: sensu-plugin
|
@@ -60,6 +60,20 @@ dependencies:
|
|
60
60
|
- - '='
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: 1.8.2
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: erubis
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
63
77
|
- !ruby/object:Gem::Dependency
|
64
78
|
name: codeclimate-test-reporter
|
65
79
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,14 +92,14 @@ dependencies:
|
|
78
92
|
name: rubocop
|
79
93
|
requirement: !ruby/object:Gem::Requirement
|
80
94
|
requirements:
|
81
|
-
- -
|
95
|
+
- - '='
|
82
96
|
- !ruby/object:Gem::Version
|
83
97
|
version: '0.30'
|
84
98
|
type: :development
|
85
99
|
prerelease: false
|
86
100
|
version_requirements: !ruby/object:Gem::Requirement
|
87
101
|
requirements:
|
88
|
-
- -
|
102
|
+
- - '='
|
89
103
|
- !ruby/object:Gem::Version
|
90
104
|
version: '0.30'
|
91
105
|
- !ruby/object:Gem::Dependency
|
metadata.gz.sig
CHANGED
Binary file
|