sensu-plugins-opsgenie 4.1.2 → 4.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9b331b034218de65cc7d965a6136348bb39ea74af1b09b3cde378b0e19af985b
4
- data.tar.gz: 06755ff6af1bf028ff6705af8cd17a9f335a8104d1331fce85b41905c7731117
3
+ metadata.gz: 60da9a2150addc0545bb2b0f982c4f803e6fc8444b26499a9ff55a3dc10571a2
4
+ data.tar.gz: 4af0d744eb11c9e6633c01f2be7f85a7ecccb89b7795f17bdbed220da73a7095
5
5
  SHA512:
6
- metadata.gz: a31eda02fa5551796050e3c0248a2c9e5a84a3691156c4a4e225cff1564c2613ee40a68e6546e1044fb9975713888bb37a126a6ad4ca13877297159040a3801c
7
- data.tar.gz: 0d05f8a9e29149ea4199f511d6fb9ec0edf62f05189a0bcb86497e1f0e693f68b6f1fc86d37584d6aeee6241b1af4be0491977d2558449a433f92ac46fa5375a
6
+ metadata.gz: 517c8af283e218ef9bef4bda6034c70866d38509ac5eb996f56f6f817b8001e2c1d849fab103fb53cf3c4e07f93e60d49cab3d08524710aefb1a62b8a41c414d
7
+ data.tar.gz: 27e42a03d769276d52f77ae245bcfce0da47cf74ee2ecc259d860e182623f9b95509f092a13c1c99cebf82b786232d376a5f4fcc761bd4d2e63c5a4760cb0a55
data/CHANGELOG.md CHANGED
@@ -5,6 +5,13 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [4.2.0] - 2018-02-20
9
+ ### Changed
10
+ - Providing better alert description field using Sensu check output (@Castaglia)
11
+
12
+ ### Added
13
+ - `handler-opsgenie.rb`: Added flag of `--verbose` to enable verbose/debugging output (@Castaglia)
14
+
8
15
  ## [4.1.2] - 2018-02-05
9
16
  ### Fixed
10
17
  - Handling of tags for events (@Castaglia)
@@ -100,6 +107,7 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
100
107
  - Fixed json configuration load
101
108
 
102
109
  [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-opsgenie/compare/4.1.2...HEAD
110
+ [4.2.0]: https://github.com/sensu-plugins/sensu-plugins-opsgenie/compare/4.1.2...4.2.0
103
111
  [4.1.2]: https://github.com/sensu-plugins/sensu-plugins-opsgenie/compare/4.1.1...4.1.2
104
112
  [4.1.1]: https://github.com/sensu-plugins/sensu-plugins-opsgenie/compare/4.1.0...4.1.1
105
113
  [4.1.0]: https://github.com/sensu-plugins/sensu-plugins-opsgenie/compare/4.0.1...4.1.0
data/README.md CHANGED
@@ -81,7 +81,54 @@ To get this to work you need to specify a few different things. For a list of fi
81
81
  }
82
82
  ```
83
83
 
84
- ## Notes
84
+ ## OpsGenie Alerts
85
+
86
+ How does the handler map the various Sensu values into the OpsGenie
87
+ [alerts and alert fields](https://docs.opsgenie.com/docs/alerts-and-alert-fields) created?
88
+
89
+ ### Message
90
+
91
+ The OpsGenie _message_ alert field is comprised of the Sensu client name, and
92
+ the Sensu check name, _e.g._:
93
+ ```
94
+ web01 : check_mysql_access
95
+ ```
96
+
97
+ ### Teams
98
+
99
+ The OpsGenie _team_ alert field uses the values in the Sensu check configuration
100
+ if any, otherwise it uses the value from the handler configuration.
101
+
102
+ ### Recipients
103
+
104
+ The OpsGenie _recipients_ alert field uses the values in the Sensu check
105
+ configuration if any, otherwise it uses the value from the handler
106
+ configuration.
107
+
108
+ ### Alias
109
+
110
+ The OpsGenie _alias_ alert is field is comprised of the Sensu client name,
111
+ and the Sensu check name to create a unique key, _e.g._:
112
+ ```
113
+ web01:check_mysql_access
114
+ ```
115
+ Note that this can be changed via configuration; see notes below.
116
+
117
+ ### Entity
118
+
119
+ The OpsGenie _entity_ alert field uses the Sensu client name.
120
+
121
+ ### Description
122
+
123
+ The OpsGenie _description_ alert field is populated with the Sensu check output.
124
+
125
+ ### Priority
126
+
127
+ The OpsGenie _priority_ alert field is not explicitly set; OpsGenie will thus
128
+ assign the default priority of "P3" to the alert.
129
+
130
+
131
+ ## Configuration Notes
85
132
 
86
133
  If the check definition uses the custom `alias` attribute, _e.g._:
87
134
  ```
@@ -11,7 +11,7 @@ require 'json'
11
11
  require 'erb'
12
12
 
13
13
  class Opsgenie < Sensu::Handler
14
- attr_reader :json_config, :message_template
14
+ attr_reader :json_config, :message_template, :verbose
15
15
 
16
16
  OPSGENIE_URL = 'https://api.opsgenie.com/v2/alerts'.freeze
17
17
 
@@ -27,6 +27,12 @@ class Opsgenie < Sensu::Handler
27
27
  long: '--template <file_path>',
28
28
  default: nil
29
29
 
30
+ option :verbose,
31
+ description: 'Enable verbose/debugging output',
32
+ short: '-v',
33
+ long: '--verbose',
34
+ default: false
35
+
30
36
  def handle
31
37
  init
32
38
  process
@@ -66,6 +72,11 @@ class Opsgenie < Sensu::Handler
66
72
  puts "opsgenie -- timed out while attempting to #{@event['action']} a incident -- #{event_id}"
67
73
  end
68
74
 
75
+ def description
76
+ return json_config['description'] unless json_config['description'].nil?
77
+ @event['check']['output'].chomp
78
+ end
79
+
69
80
  def message
70
81
  return @event['notification'] unless @event['notification'].nil?
71
82
  return default_message if message_template.nil? || !File.exist?(message_template)
@@ -79,7 +90,7 @@ class Opsgenie < Sensu::Handler
79
90
  end
80
91
 
81
92
  def default_message
82
- [@event['client']['name'], @event['check']['name'], @event['check']['output'].chomp].join(' : ')
93
+ [@event['client']['name'], @event['check']['name']].join(' : ')
83
94
  end
84
95
 
85
96
  def event_id
@@ -111,7 +122,7 @@ class Opsgenie < Sensu::Handler
111
122
  post_to_opsgenie(:create,
112
123
  alias: event_id,
113
124
  message: message,
114
- description: json_config['description'],
125
+ description: description,
115
126
  entity: client_name,
116
127
  tags: tags,
117
128
  recipients: json_config['recipients'],
@@ -145,6 +156,19 @@ class Opsgenie < Sensu::Handler
145
156
  "#{encoded_alias}/close?identifierType=alias"
146
157
  end
147
158
  uri = URI.parse("#{OPSGENIE_URL}/#{uripath}")
159
+
160
+ if config[:verbose]
161
+ # Note that the ordering of these lines roughly follows the order
162
+ # alert fields are displayed in the OpsGenie web UI.
163
+ puts "URL: #{uri}"
164
+ puts "Message: #{params[:message]}"
165
+ puts "Tags: #{params[:tags]}"
166
+ puts "Entity: #{params[:entity]}"
167
+ puts "Teams: #{params[:teams]}"
168
+ puts "Alias: #{params[:alias]}"
169
+ puts "Description: #{params[:description]}"
170
+ end
171
+
148
172
  http = Net::HTTP.new(uri.host, uri.port)
149
173
  http.use_ssl = true
150
174
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
@@ -5,8 +5,8 @@ module SensuPluginsOpsgenie
5
5
  # This defines the version of the gem
6
6
  module Version
7
7
  MAJOR = 4
8
- MINOR = 1
9
- PATCH = 2
8
+ MINOR = 2
9
+ PATCH = 0
10
10
 
11
11
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
12
12
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-opsgenie
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.2
4
+ version: 4.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu-Plugins and contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-06 00:00:00.000000000 Z
11
+ date: 2018-02-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sensu-plugin
@@ -267,7 +267,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
267
267
  version: '0'
268
268
  requirements: []
269
269
  rubyforge_project:
270
- rubygems_version: 2.7.5
270
+ rubygems_version: 2.7.6
271
271
  signing_key:
272
272
  specification_version: 4
273
273
  summary: Sensu plugins for working with opsgenie