sensu-plugins-opsgenie 4.0.1 → 4.1.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: 2bd3826a3acb4f4fb2321c7a82774d9e9bb2f0da41b4f0ae7ba3bccb0c6c5946
4
- data.tar.gz: a393ec78de3a7c46f97754da70e3a5bb0e11c203a77175e87ce6982835f13819
3
+ metadata.gz: faf5d85fd7a0b67c548f58d23def4e94a60c371898ae21a8def6b85190a90d13
4
+ data.tar.gz: c30d35754b9edf57a5293895701918eb09290900636258ad57d7f62e06cafd37
5
5
  SHA512:
6
- metadata.gz: 632312ea4f30eaeb5158fd2d5ba993b3413decf572e22d6afa15c41c0bf8f0d991c610e0239fa42132b8a4039731ebda15779b47dbd6d774968060f0e2e18206
7
- data.tar.gz: 3a7806f26770a42e7fe833e3188b97c6560d287ea00037db7cee96a8b1acdad258658e79aa34563b29f3d23d99a98a184171c2b665d81e0165770ff94f9e6c30
6
+ metadata.gz: 462592d60faf80d7bbd44bf97b0e77f8576ce393cb9463cd28d04b5a76f44a8edf71f2019462eeacf4c89c9f0a9d54668433946e7756ed02384ef12528b4873f
7
+ data.tar.gz: 6979f09f5efde25851ee26ca38ee2686b98277f57c358c5ae841f50a5c7dfe9df66ac16058664cbe39d146dca8605a0b9a59d1c71454a845e54de1842530c3a6
data/CHANGELOG.md CHANGED
@@ -1,10 +1,17 @@
1
- #Change Log
1
+ # Change Log
2
2
  This project adheres to [Semantic Versioning](http://semver.org/).
3
3
 
4
- This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachangelog.com/)
4
+ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins/community/blob/master/HOW_WE_CHANGELOG.md)
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [4.1.0] 2018-01-14
9
+ ### Added
10
+ - Added possibility to specify custom alias for event ID, this acts in a similar way to proxy/JIT clients to dedupe alerts (@Castaglia)
11
+
12
+ ### Changed
13
+ - updated Changelog guidelines location (@majormoses)
14
+
8
15
  ## [4.0.1] - 2018-01-06
9
16
  ### Fixed
10
17
  - Use Alert v2 API, as the Alert v1 API is deprecated (@Castaglia)
@@ -78,7 +85,8 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
78
85
  - initial release
79
86
  - Fixed json configuration load
80
87
 
81
- [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-opsgenie/compare/4.0.1...HEAD
88
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-opsgenie/compare/4.1.0...HEAD
89
+ [4.1.0]: https://github.com/sensu-plugins/sensu-plugins-opsgenie/compare/4.0.1...4.1.0
82
90
  [4.0.1]: https://github.com/sensu-plugins/sensu-plugins-opsgenie/compare/4.0.0...4.0.1
83
91
  [4.0.0]: https://github.com/sensu-plugins/sensu-plugins-opsgenie/compare/3.1.0...4.0.0
84
92
  [3.1.0]: https://github.com/sensu-plugins/sensu-plugins-opsgenie/compare/3.0.0...3.1.0
data/README.md CHANGED
@@ -79,3 +79,56 @@ To get this to work you need to specify a few different things. For a list of fi
79
79
  ```
80
80
 
81
81
  ## Notes
82
+
83
+ If the check definition uses the custom `alias` attribute, _e.g._:
84
+ ```
85
+ {
86
+ "checks": {
87
+ "check_mysql_access": {
88
+ "opsgenie": {
89
+ "alias": "MyCustomAlias",
90
+
91
+ ```
92
+ then the `handler-opsgenie.rb` handler will use that attribute value as the
93
+ OpsGenie event ID. This can be useful for alert deduplication; checks on
94
+ different clients for the same downstream resource can specify the same
95
+ `alias` attribute, so that multiple alerts for the same resource are
96
+ de-duplicated.
97
+
98
+ By default, `handler-opsgenie.rb` creates an event ID from the client name
99
+ and the check name. Thus:
100
+ ```
101
+ {
102
+ "checks": {
103
+ "check_mysql_access": {
104
+ "command": "/opt/sensu/embedded/bin/check-database.rb -h mysqldb",
105
+ "interval": 60,
106
+ "handlers": [ "opsgenie" ],
107
+ "standalone": true
108
+ }
109
+ }
110
+ ```
111
+ running on a client named `web01` will create an alert using an event ID of
112
+ `web01:check_mysql_access`. And on a client named `web02`, it would create an
113
+ alert with a _different_ event ID of `web02:check_mysql_access`, even though
114
+ the `mysqldb` server being checked is the same for these clients.
115
+
116
+ We can define a custom `alias` attribute in this check:
117
+ ```
118
+ {
119
+ "checks": {
120
+ "check_mysql_access": {
121
+ "command": "/opt/sensu/embedded/bin/check-database.rb -h mysqldb",
122
+ "interval": 60,
123
+ "handlers": [ "opsgenie" ],
124
+ "standalone": true,
125
+
126
+ "opsgenie": {
127
+ "alias": "mysqldb"
128
+ }
129
+ }
130
+ }
131
+ ```
132
+ And with this, running on multiple clients, any alerts would be generated
133
+ with the same event ID of `mysqldb`, by using that `alias` attribute as the
134
+ event ID.
@@ -52,18 +52,18 @@ class Opsgenie < Sensu::Handler
52
52
  end
53
53
  case response.code.to_s
54
54
  when '200', '202'
55
- puts 'opsgenie -- ' + @event['action'].capitalize + 'd incident -- ' + event_id
55
+ puts "opsgenie -- #{@event['action'].capitalize}d incident -- #{event_id}"
56
56
  when '401'
57
- puts 'opsgenie -- failed to ' + @event['action'] + ' incident -- not authorized'
57
+ puts "opsgenie -- failed to #{@event['action']} incident -- #{event_id}: not authorized"
58
58
  when '404'
59
- puts 'opsgenie -- failed to ' + @event['action'] + ' incident -- ' + event_id + ' not found'
59
+ puts "opsgenie -- failed to #{@event['action']} incident -- #{event_id} not found"
60
60
  else
61
- puts 'opsgenie -- failed to ' + @event['action'] + ' incident -- ' + event_id
61
+ puts "opsgenie -- failed to #{@event['action']} incident -- #{event_id}"
62
62
  puts "HTTP #{response.code} #{response.message}: #{response.body}"
63
63
  end
64
64
  end
65
65
  rescue Timeout::Error
66
- puts 'opsgenie -- timed out while attempting to ' + @event['action'] + ' a incident -- ' + event_id
66
+ puts "opsgenie -- timed out while attempting to #{@event['action']} a incident -- #{event_id}"
67
67
  end
68
68
 
69
69
  def message
@@ -83,6 +83,8 @@ class Opsgenie < Sensu::Handler
83
83
  end
84
84
 
85
85
  def event_id
86
+ return @event['check']['opsgenie']['alias'] unless @event['check']['opsgenie'].nil? || @event['check']['opsgenie']['alias'].nil?
87
+
86
88
  # Do not use slashes in the event ID, as this alias becomes part of the URI
87
89
  # in the RESTful interactions with OpsGenie; use characters which can be
88
90
  # easily embedded into a URI.
@@ -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 = 0
9
- PATCH = 1
8
+ MINOR = 1
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.0.1
4
+ version: 4.1.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-01-07 00:00:00.000000000 Z
11
+ date: 2018-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sensu-plugin