sensu-plugins-slack 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|