logstash-output-opsgenie 2.0.5 → 2.1.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 +4 -4
- data/lib/logstash/outputs/opsgenie.rb +26 -21
- data/logstash-output-opsgenie.gemspec +1 -1
- data/spec/outputs/opsgenie_spec.rb +1 -1
- metadata +22 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2ee26d60c05c3c473e778354fa9ec42a40b5fe33
|
4
|
+
data.tar.gz: 2bc3a2b1db6804848bf87b02773aca6a4e9b6abf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9980c7494916bee71e1b893dc29adc5d21be7b06c3a4e67c410901f89b8dbcd219e3a8809eefb6dc22cff46cd10fe4dc3b1b1a6c700e9a4c44aba563b56ed87
|
7
|
+
data.tar.gz: a60009f01a762540a9e060f50645da3246c2b14dac51f4604256b296d3d232ba47d05b5c6bdf01f0c40c05f782515739b2452eae849b0afd8699751a7e9a97cb
|
@@ -72,6 +72,11 @@ class LogStash::Outputs::OpsGenie < LogStash::Outputs::Base
|
|
72
72
|
# OpsGenie Logstash Integration API Key
|
73
73
|
config :apiKey, :validate => :string, :required => true
|
74
74
|
|
75
|
+
# Proxy settings
|
76
|
+
config :proxy_address, :validate => :string, :required => false
|
77
|
+
config :proxy_port, :validate => :number, :required => false
|
78
|
+
|
79
|
+
|
75
80
|
# Host of opsgenie api, normally you should not need to change this field.
|
76
81
|
config :opsGenieBaseUrl, :validate => :string, :required => false, :default => 'https://api.opsgenie.com'
|
77
82
|
|
@@ -140,23 +145,23 @@ class LogStash::Outputs::OpsGenie < LogStash::Outputs::Base
|
|
140
145
|
|
141
146
|
public
|
142
147
|
def populateAliasOrId(event, params)
|
143
|
-
alertAlias = event
|
148
|
+
alertAlias = event.get(@aliasAttribute) if event.get(@aliasAttribute)
|
144
149
|
if alertAlias == nil then
|
145
|
-
alertId = event
|
150
|
+
alertId = event.get(@alertIdAttribute) if event.get(@alertIdAttribute)
|
146
151
|
if !(alertId == nil) then
|
147
152
|
params['alertId'] = alertId;
|
148
153
|
end
|
149
154
|
else
|
150
155
|
params['alias'] = alertAlias
|
151
156
|
end
|
152
|
-
end#def populateAliasOrId
|
157
|
+
end # def populateAliasOrId
|
153
158
|
|
154
159
|
public
|
155
160
|
def executePost(uri, params)
|
156
161
|
if not uri == nil then
|
157
162
|
@logger.info("Executing url #{uri}")
|
158
163
|
url = URI(uri)
|
159
|
-
http = Net::HTTP.new(url.host, url.port)
|
164
|
+
http = Net::HTTP.new(url.host, url.port, @proxy_address, @proxy_port)
|
160
165
|
if url.scheme == 'https'
|
161
166
|
http.use_ssl = true
|
162
167
|
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
@@ -168,19 +173,19 @@ class LogStash::Outputs::OpsGenie < LogStash::Outputs::Base
|
|
168
173
|
body = JSON.parse(body)
|
169
174
|
@logger.warn("Executed [#{uri}]. Response:[#{body}]")
|
170
175
|
end
|
171
|
-
end#def executePost
|
176
|
+
end # def executePost
|
172
177
|
|
173
178
|
public
|
174
179
|
def receive(event)
|
175
180
|
return unless output?(event)
|
176
181
|
@logger.info("processing #{event}")
|
177
|
-
opsGenieAction = event
|
182
|
+
opsGenieAction = event.get(@actionAttribute) if event.get(@actionAttribute)
|
178
183
|
if opsGenieAction then
|
179
184
|
params = { :apiKey => @apiKey}
|
180
185
|
case opsGenieAction.downcase
|
181
186
|
when "create"
|
182
187
|
uri = "#{@opsGenieBaseUrl}#{@createActionUrl}"
|
183
|
-
params = populateCreateAlertContent(params,event)
|
188
|
+
params = populateCreateAlertContent(params, event)
|
184
189
|
when "close"
|
185
190
|
uri = "#{@opsGenieBaseUrl}#{@closeActionUrl}"
|
186
191
|
when "acknowledge"
|
@@ -201,25 +206,25 @@ class LogStash::Outputs::OpsGenie < LogStash::Outputs::Base
|
|
201
206
|
end # def receive
|
202
207
|
|
203
208
|
private
|
204
|
-
def populateCreateAlertContent(params,event)
|
205
|
-
params['message'] = event
|
206
|
-
params['teams'] = event
|
207
|
-
params['description'] = event
|
208
|
-
params['recipients'] = event
|
209
|
-
params['actions'] = event
|
210
|
-
params['tags'] = event
|
211
|
-
params['entity'] = event
|
212
|
-
params['details'] = event
|
209
|
+
def populateCreateAlertContent(params, event)
|
210
|
+
params['message'] = event.get(@messageAttribute) if event.get(@messageAttribute)
|
211
|
+
params['teams'] = event.get(@teamsAttribute) if event.get(@teamsAttribute)
|
212
|
+
params['description'] = event.get(@descriptionAttribute) if event.get(@descriptionAttribute)
|
213
|
+
params['recipients'] = event.get(@recipientsAttribute) if event.get(@recipientsAttribute)
|
214
|
+
params['actions'] = event.get(@actionsAttribute) if event.get(@actionsAttribute)
|
215
|
+
params['tags'] = event.get(@tagsAttribute) if event.get(@tagsAttribute)
|
216
|
+
params['entity'] = event.get(@entityAttribute) if event.get(@entityAttribute)
|
217
|
+
params['details'] = event.get(@detailsAttribute) if event.get(@detailsAttribute)
|
213
218
|
|
214
219
|
return params
|
215
220
|
end
|
216
221
|
|
217
222
|
private
|
218
|
-
def populateCommonContent(params,event)
|
223
|
+
def populateCommonContent(params, event)
|
219
224
|
populateAliasOrId(event, params)
|
220
|
-
params['source'] = event
|
221
|
-
params['user'] = event
|
222
|
-
params['note'] = event
|
225
|
+
params['source'] = event.get(@sourceAttribute) if event.get(@sourceAttribute)
|
226
|
+
params['user'] = event.get(@userAttribute) if event.get(@userAttribute)
|
227
|
+
params['note'] = event.get(@noteAttribute) if event.get(@noteAttribute)
|
223
228
|
end
|
224
229
|
|
225
|
-
end # class LogStash::Outputs::OpsGenie
|
230
|
+
end # class LogStash::Outputs::OpsGenie
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'logstash-output-opsgenie'
|
3
|
-
s.version = '2.0
|
3
|
+
s.version = '2.1.0'
|
4
4
|
s.licenses = ["Apache License (2.0)"]
|
5
5
|
s.summary = "This output Creates, Closes, Acknowledges alerts and Adds Note to alerts in OpsGenie."
|
6
6
|
s.description = "This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program"
|
@@ -5,7 +5,7 @@ require "logstash/event"
|
|
5
5
|
|
6
6
|
describe LogStash::Outputs::OpsGenie do
|
7
7
|
|
8
|
-
subject {LogStash::Outputs::OpsGenie.new( "apiKey" => "
|
8
|
+
subject {LogStash::Outputs::OpsGenie.new( "apiKey" => "my_api_key" )}
|
9
9
|
let(:logger) { subject.logger}
|
10
10
|
|
11
11
|
describe "receive message" do
|
metadata
CHANGED
@@ -1,16 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-output-opsgenie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: logstash-core-plugin-api
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
15
16
|
requirements:
|
16
17
|
- - '>='
|
@@ -19,9 +20,8 @@ dependencies:
|
|
19
20
|
- - <=
|
20
21
|
- !ruby/object:Gem::Version
|
21
22
|
version: '2.99'
|
22
|
-
name: logstash-core-plugin-api
|
23
|
-
prerelease: false
|
24
23
|
type: :runtime
|
24
|
+
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - '>='
|
@@ -31,54 +31,56 @@ dependencies:
|
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '2.99'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
|
+
name: logstash-codec-plain
|
34
35
|
requirement: !ruby/object:Gem::Requirement
|
35
36
|
requirements:
|
36
37
|
- - '>='
|
37
38
|
- !ruby/object:Gem::Version
|
38
39
|
version: '0'
|
39
|
-
name: logstash-codec-plain
|
40
|
-
prerelease: false
|
41
40
|
type: :runtime
|
41
|
+
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - '>='
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '0'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
|
+
name: logstash-devutils
|
48
49
|
requirement: !ruby/object:Gem::Requirement
|
49
50
|
requirements:
|
50
51
|
- - '>='
|
51
52
|
- !ruby/object:Gem::Version
|
52
53
|
version: '0'
|
53
|
-
name: logstash-devutils
|
54
|
-
prerelease: false
|
55
54
|
type: :development
|
55
|
+
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - '>='
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '0'
|
61
|
-
description: This gem is a logstash plugin required to be installed on top of the
|
61
|
+
description: This gem is a logstash plugin required to be installed on top of the
|
62
|
+
Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not
|
63
|
+
a stand-alone program
|
62
64
|
email: info@elastic.co
|
63
65
|
executables: []
|
64
66
|
extensions: []
|
65
67
|
extra_rdoc_files: []
|
66
68
|
files:
|
69
|
+
- lib/logstash/outputs/opsgenie.rb
|
70
|
+
- spec/outputs/opsgenie_spec.rb
|
71
|
+
- logstash-output-opsgenie.gemspec
|
67
72
|
- CHANGELOG.md
|
73
|
+
- README.md
|
68
74
|
- Gemfile
|
69
75
|
- LICENSE
|
70
76
|
- NOTICE.TXT
|
71
|
-
- README.md
|
72
|
-
- lib/logstash/outputs/opsgenie.rb
|
73
|
-
- logstash-output-opsgenie.gemspec
|
74
|
-
- spec/outputs/opsgenie_spec.rb
|
75
77
|
homepage: http://www.elastic.co/guide/en/logstash/current/index.html
|
76
78
|
licenses:
|
77
79
|
- Apache License (2.0)
|
78
80
|
metadata:
|
79
81
|
logstash_plugin: 'true'
|
80
82
|
logstash_group: output
|
81
|
-
post_install_message:
|
83
|
+
post_install_message:
|
82
84
|
rdoc_options: []
|
83
85
|
require_paths:
|
84
86
|
- lib
|
@@ -93,10 +95,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
93
95
|
- !ruby/object:Gem::Version
|
94
96
|
version: '0'
|
95
97
|
requirements: []
|
96
|
-
rubyforge_project:
|
97
|
-
rubygems_version: 2.
|
98
|
-
signing_key:
|
98
|
+
rubyforge_project:
|
99
|
+
rubygems_version: 2.0.14.1
|
100
|
+
signing_key:
|
99
101
|
specification_version: 4
|
100
|
-
summary: This output Creates, Closes, Acknowledges alerts and Adds Note to alerts
|
102
|
+
summary: This output Creates, Closes, Acknowledges alerts and Adds Note to alerts
|
103
|
+
in OpsGenie.
|
101
104
|
test_files:
|
102
105
|
- spec/outputs/opsgenie_spec.rb
|