sensu-plugins-opsgenie 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NzA2ZDNhNWM2NTJhODQ4NGJjYmI1NzQ4ZGE0ZGVmMTJkOTRmOTQ4Zg==
4
+ ZTc2NDQ4NmI1N2U3MDQ5ZmRhNzVmNWZiMDJkZDBkY2MwNzYzMjQzNQ==
5
5
  data.tar.gz: !binary |-
6
- MGFlMDk3MTE4OWEzYmJiZjhhMWVmZjg0ZWUzZjgzMzM0ODA0YjM2YQ==
6
+ OTc5MWFiMTU4NzRiNTdjZTQ4ZmUyNjQ0YjNhYTcwN2VjMjMzZmJjZA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- M2YwN2IyYWE2ZjVkMzE1NjA0M2QxMmZiOTI0OTUxZDU2MGMwZWZmYmI5OTlj
10
- MDAwYWRiOTI4OWJhZjI0MmVmOGU3M2E2OGE2ODU3NjgzYzJjN2I2ZGY5MmM1
11
- MjY1NTVjNzllMGUwNmVlOTNmNTllZDMwNDUwYTAxZGYxOGE4ZmQ=
9
+ MjEzNTE3YjRkYmNmODVmZGYwMmE5ZGY4ZDNhNTY4Y2UyYmI5MDA0ZTc2MTMx
10
+ ZWY2Yjg5MWFmMWQ2ZmRiMWY2ZDBlYmUzNmRhYzc3OGI5ODlkM2ZiOWVhYWRh
11
+ OWE4MWQ5NmQyZmIzMTJiYzNlN2UzNjAxNDI1ZTI4NTIyOTNhMzk=
12
12
  data.tar.gz: !binary |-
13
- OWJjOWQxNmZlZjJmMWRjODUyMTFjMmQ4M2NhODkzMmZlMmUwOTg5MjgzNDA3
14
- MmE5YWJjNTA1NjRhNTM4MWMyNjY4NWUwYTQ2YmZmMWViMDhiNWZhODFhMjk3
15
- Yzk0MmNmNmY4YTUyZWFkMjA2YmU1NDA0MTZkYzE0NGIxMjIyMzQ=
13
+ ZGZjZGJlZGNjZTIzMzM1MTUyZDg1YjY3YWZlMjlkZGMyMTk4OGZkYTA1MzU0
14
+ NjdjMjMxODUyZWNkOWFlNDRkYjEzYmY3ZGYwMmEwZTAwZDg0NDg2OTBkNTRk
15
+ YjRjZTJjOGZjMTk5YzdkMzdjZWMzMzVhYzFjZDcyY2E3ODU1NjY=
data/CHANGELOG.md CHANGED
@@ -5,10 +5,23 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
- ## [1.0.0] - 2015-03-30
8
+ ## [2.0.0] - 2016-06-29
9
+ ### Added
10
+ - Added description support for OpsGenie alerts (@mnellemann)
11
+ - Report the client name as `entity` to OpsGenie (@steti)
12
+ - Support for Ruby 2.3.0
13
+
14
+ ### Changed
15
+ - Update to Rubocop 0.40 and cleanup
16
+
17
+ ### Removed
18
+ - Support for Ruby 1.9.3
19
+
20
+ ## [1.0.0] - 2016-04-12
9
21
  ### Changed
10
22
  - Changed the `-j, --jsonconfig` parameter to specify a key in the already-parsed JSON config file
11
23
  - The `-j, --jsonconfig` parameter no longer takes a JSON config file as input
24
+ - Update to rubocop 0.37
12
25
 
13
26
  ## [0.0.3] - 2015-11-26
14
27
  ### Added
@@ -34,7 +47,9 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
34
47
  - initial release
35
48
  - Fixed json configuration load
36
49
 
37
- [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-opsgenie/compare/0.0.3...HEAD
50
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-opsgenie/compare/2.0.0...HEAD
51
+ [2.0.0]: https://github.com/sensu-plugins/sensu-plugins-opsgenie/compare/1.0.0...2.0.0
52
+ [1.0.0]: https://github.com/sensu-plugins/sensu-plugins-opsgenie/compare/0.0.3...1.0.0
38
53
  [0.0.3]: https://github.com/sensu-plugins/sensu-plugins-opsgenie/compare/0.0.2...0.0.3
39
54
  [0.0.2]: https://github.com/sensu-plugins/sensu-plugins-opsgenie/compare/0.0.1...0.0.2
40
55
 
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ## Sensu-Plugins-opsgenie
2
2
 
3
- [ ![Build Status](https://travis-ci.org/sensu-plugins/sensu-plugins-opsgenie.svg?branch=master)](https://travis-ci.org/sensu-plugins/sensu-plugins-opsgenie)
3
+ [![Build Status](https://travis-ci.org/sensu-plugins/sensu-plugins-opsgenie.svg?branch=master)](https://travis-ci.org/sensu-plugins/sensu-plugins-opsgenie)
4
4
  [![Gem Version](https://badge.fury.io/rb/sensu-plugins-opsgenie.svg)](http://badge.fury.io/rb/sensu-plugins-opsgenie)
5
5
  [![Code Climate](https://codeclimate.com/github/sensu-plugins/sensu-plugins-opsgenie/badges/gpa.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-opsgenie)
6
6
  [![Test Coverage](https://codeclimate.com/github/sensu-plugins/sensu-plugins-opsgenie/badges/coverage.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-opsgenie)
@@ -32,4 +32,50 @@
32
32
 
33
33
  [Installation and Setup](http://sensu-plugins.io/docs/installation_instructions.html)
34
34
 
35
+ ## Configuration
36
+ To get this to work you need to specify a few different things. For a list of fields that are required/available look at the [sensu documentation](https://sensuapp.org/docs/0.25/enterprise/integrations/opsgenie.html). These files need to be on the server and the client boxes. Once there restart sensu-server and sensu-api.
37
+
38
+ - declare this as a handler: `/etc/sensu/conf.d/handler_opsgenie.json`
39
+ ``` json
40
+ {
41
+ "handlers": {
42
+ "opsgenie": {
43
+ "type": "pipe",
44
+ "command": "/opt/sensu/embedded/bin/handler-opsgenie.rb"
45
+ }
46
+ },
47
+ "opsgenie": {
48
+ "customerKey": "YOUR-KEY-HERE"
49
+ }
50
+ }
51
+ ```
52
+
53
+ - add it to the check: `/etc/sensu/conf.d/check_xxx.json`
54
+ ``` json
55
+ {
56
+ "checks": {
57
+ "check_elastinats_is_running": {
58
+ "command": "/opt/sensu/embedded/bin/check-process.rb -p cron",
59
+ "interval": 60,
60
+ "handlers": [ "opsgenie" ],
61
+ "subscribers": [ "core" ]
62
+ }
63
+ }
64
+ }
65
+ ```
66
+
67
+ - optionally add it to the default handler: `/etc/sensu/conf.d/default_handler.json`
68
+ ``` json
69
+ {
70
+ "handlers": {
71
+ "default": {
72
+ "type": "set",
73
+ "handlers": [
74
+ "opsgenie"
75
+ ]
76
+ }
77
+ }
78
+ }
79
+ ```
80
+
35
81
  ## Notes
@@ -22,13 +22,13 @@ class Opsgenie < Sensu::Handler
22
22
  if @event['check']['opsgenie']
23
23
  @json_config.merge!(@event['check']['opsgenie'])
24
24
  end
25
- description = @event['notification'] || [@event['client']['name'], @event['check']['name'], @event['check']['output'].chomp].join(' : ')
25
+ message = @event['notification'] || [@event['client']['name'], @event['check']['name'], @event['check']['output'].chomp].join(' : ')
26
26
 
27
27
  begin
28
28
  timeout(30) do
29
29
  response = case @event['action']
30
30
  when 'create'
31
- create_alert(description)
31
+ create_alert(message)
32
32
  when 'resolve'
33
33
  close_alert
34
34
  end
@@ -59,7 +59,11 @@ class Opsgenie < Sensu::Handler
59
59
  @event['client']['tags']
60
60
  end
61
61
 
62
- def create_alert(description)
62
+ def client_name
63
+ @event['client']['name']
64
+ end
65
+
66
+ def create_alert(message)
63
67
  tags = []
64
68
  tags << @json_config['tags'] if @json_config['tags']
65
69
  tags << 'OverwriteQuietHours' if event_status == 2 && @json_config['overwrite_quiet_hours'] == true
@@ -70,10 +74,18 @@ class Opsgenie < Sensu::Handler
70
74
  event_tags.each { |tag, value| tags << "#{tag}_#{value}" }
71
75
  end
72
76
 
77
+ description = @json_config['description'] if @json_config['description']
73
78
  recipients = @json_config['recipients'] if @json_config['recipients']
74
79
  teams = @json_config['teams'] if @json_config['teams']
75
80
 
76
- post_to_opsgenie(:create, alias: event_id, message: description, tags: tags.join(','), recipients: recipients, teams: teams)
81
+ post_to_opsgenie(:create,
82
+ alias: event_id,
83
+ message: message,
84
+ description: description,
85
+ entity: client_name,
86
+ tags: tags.join(','),
87
+ recipients: recipients,
88
+ teams: teams)
77
89
  end
78
90
 
79
91
  def post_to_opsgenie(action = :create, params = {})
@@ -4,7 +4,7 @@ require 'json'
4
4
  module SensuPluginsOpsgenie
5
5
  # This defines the version of the gem
6
6
  module Version
7
- MAJOR = 1
7
+ MAJOR = 2
8
8
  MINOR = 0
9
9
  PATCH = 0
10
10
 
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-opsgenie
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.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: 2016-04-09 00:00:00.000000000 Z
11
+ date: 2016-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sensu-plugin
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '='
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: 1.2.0
19
+ version: '1.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '='
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: 1.2.0
26
+ version: '1.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - ~>
130
130
  - !ruby/object:Gem::Version
131
- version: '0.37'
131
+ version: 0.40.0
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - ~>
137
137
  - !ruby/object:Gem::Version
138
- version: '0.37'
138
+ version: 0.40.0
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: yard
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -183,7 +183,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
183
183
  requirements:
184
184
  - - ! '>='
185
185
  - !ruby/object:Gem::Version
186
- version: 1.9.3
186
+ version: 2.0.0
187
187
  required_rubygems_version: !ruby/object:Gem::Requirement
188
188
  requirements:
189
189
  - - ! '>='