sensu 1.6.2 → 1.7.0
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 +1 -1
- data/CHANGELOG.md +14 -0
- data/lib/sensu/api/routes/clients.rb +4 -2
- data/lib/sensu/api/routes/health.rb +16 -6
- data/lib/sensu/api/utilities/publish_check_request.rb +1 -1
- data/lib/sensu/api/utilities/servers_info.rb +8 -1
- data/lib/sensu/constants.rb +1 -1
- data/lib/sensu/daemon.rb +32 -2
- data/lib/sensu/utilities.rb +1 -1
- data/sensu.gemspec +2 -2
- metadata +6 -6
- 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: abc95454535a1de5457e625a992d6d4de138bc9c
|
4
|
+
data.tar.gz: cdb41cd96c00967d8c7653edb03b4dddc23f5800
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e211d7fc0dc37af916333af52a926d1fa41d5be94d5472ec1deb8dfb2edcb775a5246ca3ea32df21de7c41fb3a811549f5cb13f8bf444b3800cd02564d33295f
|
7
|
+
data.tar.gz: 8d6790cbca39aec06b05e3a1874eae7a15d580e079d7a5b8edc1ab94bf8a85e21a402c09a1e51dd2bd9692558b2eee3c5e859543bfdb51e467c556fd1a701b56
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
�W�T��F���P����E)��tLթ�A���\c��)<|w�|�M�z�9ݾ������Wϰ�-����)&�%]�aD����a��N�hϱ�Q�W��.�������h+/�m{���L��-}����qs.�'7�^PS��/�83�4��_���\d?}ԫrJ����_��P���TY1����^�w�3�L���,`V��$����5H�E���l���e�7��b�<N�a
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,20 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
|
|
5
5
|
|
6
6
|
## [Unreleased]
|
7
7
|
|
8
|
+
## [1.7.0] - 2018-02-19
|
9
|
+
|
10
|
+
### Added
|
11
|
+
- Added a response body to the api health endpoint including transport consumer & message counts.
|
12
|
+
- Bump sensu-extensions to 1.11.0 to add support for built-in sensu-extensions-deregistration handler.
|
13
|
+
- Added an eventmachine globbal catch-all error handler.
|
14
|
+
|
15
|
+
### Fixed
|
16
|
+
- Token substitution will now only split on the first instance of the pipe character.
|
17
|
+
- Use `deep_dup` in api token substitution to prevent an issue where substitution could use an incorrect value.
|
18
|
+
- Redacted attributes are now redacted from the `/clients` and `/clients/:client` routes.
|
19
|
+
- Server registry entires that fail to expire are now cleaned up.
|
20
|
+
- Improved error logging.
|
21
|
+
|
8
22
|
## [1.6.2] - 2018-12-07
|
9
23
|
|
10
24
|
### Fixed
|
@@ -42,7 +42,8 @@ module Sensu
|
|
42
42
|
clients.each_with_index do |client_name, index|
|
43
43
|
@redis.get("client:#{client_name}") do |client_json|
|
44
44
|
unless client_json.nil?
|
45
|
-
|
45
|
+
client = Sensu::JSON.load(client_json)
|
46
|
+
@response_content << redact_sensitive(client, client[:redact])
|
46
47
|
else
|
47
48
|
@logger.error("client data missing from registry", :client_name => client_name)
|
48
49
|
@redis.srem("clients", client_name)
|
@@ -63,7 +64,8 @@ module Sensu
|
|
63
64
|
client_name = parse_uri(CLIENT_URI).first
|
64
65
|
@redis.get("client:#{client_name}") do |client_json|
|
65
66
|
unless client_json.nil?
|
66
|
-
|
67
|
+
client = Sensu::JSON.load(client_json)
|
68
|
+
@response_content = redact_sensitive(client, client[:redact])
|
67
69
|
respond
|
68
70
|
else
|
69
71
|
not_found!
|
@@ -10,22 +10,32 @@ module Sensu
|
|
10
10
|
|
11
11
|
# GET /health
|
12
12
|
def get_health
|
13
|
+
@response_content = []
|
13
14
|
if @redis.connected? && @transport.connected?
|
14
|
-
healthy = []
|
15
15
|
min_consumers = integer_parameter(@params[:consumers])
|
16
16
|
max_messages = integer_parameter(@params[:messages])
|
17
17
|
transport_info do |info|
|
18
18
|
if min_consumers
|
19
|
-
|
20
|
-
|
19
|
+
if info[:keepalives][:consumers] < min_consumers
|
20
|
+
@response_content << "keepalive consumers (#{info[:keepalives][:consumers]}) less than min_consumers (#{min_consumers})"
|
21
|
+
end
|
22
|
+
if info[:results][:consumers] < min_consumers
|
23
|
+
@response_content << "result consumers (#{info[:results][:consumers]}) less than min_consumers (#{min_consumers})"
|
24
|
+
end
|
21
25
|
end
|
22
26
|
if max_messages
|
23
|
-
|
24
|
-
|
27
|
+
if info[:keepalives][:messages] > max_messages
|
28
|
+
@response_content << "keepalive messages (#{info[:keepalives][:messages]}) greater than max_messages (#{max_messages})"
|
29
|
+
end
|
30
|
+
if info[:results][:messages] > max_messages
|
31
|
+
@response_content << "result messages (#{info[:results][:messages]}) greater than max_messages (#{max_messages})"
|
32
|
+
end
|
25
33
|
end
|
26
|
-
|
34
|
+
@response_content.empty? ? no_content! : precondition_failed!
|
27
35
|
end
|
28
36
|
else
|
37
|
+
@response_content << "not connected to redis" unless @redis.connected?
|
38
|
+
@response_content << "not connected to transport" unless @transport.connected?
|
29
39
|
precondition_failed!
|
30
40
|
end
|
31
41
|
end
|
@@ -82,7 +82,7 @@ module Sensu
|
|
82
82
|
:client => client,
|
83
83
|
:check => check
|
84
84
|
})
|
85
|
-
proxy_check, unmatched_tokens = object_substitute_tokens(check.dup, client)
|
85
|
+
proxy_check, unmatched_tokens = object_substitute_tokens(deep_dup(check.dup), client)
|
86
86
|
if unmatched_tokens.empty?
|
87
87
|
proxy_check[:source] ||= client[:name]
|
88
88
|
publish_check_request(proxy_check)
|
@@ -13,7 +13,14 @@ module Sensu
|
|
13
13
|
servers.each_with_index do |server_id, index|
|
14
14
|
@redis.get("server:#{server_id}") do |server_json|
|
15
15
|
unless server_json.nil?
|
16
|
-
|
16
|
+
server = Sensu::JSON.load(server_json)
|
17
|
+
if server[:timestamp] >= (Time.now.to_i - 30)
|
18
|
+
info << server
|
19
|
+
else
|
20
|
+
@redis.del("server:#{server_id}") do
|
21
|
+
@redis.srem("servers", server_id)
|
22
|
+
end
|
23
|
+
end
|
17
24
|
else
|
18
25
|
@redis.srem("servers", server_id)
|
19
26
|
end
|
data/lib/sensu/constants.rb
CHANGED
data/lib/sensu/daemon.rb
CHANGED
@@ -4,9 +4,9 @@ gem "eventmachine", "1.2.7"
|
|
4
4
|
|
5
5
|
gem "sensu-json", "2.1.1"
|
6
6
|
gem "sensu-logger", "1.2.2"
|
7
|
-
gem "sensu-settings", "10.
|
7
|
+
gem "sensu-settings", "10.15.0"
|
8
8
|
gem "sensu-extension", "1.5.2"
|
9
|
-
gem "sensu-extensions", "1.
|
9
|
+
gem "sensu-extensions", "1.11.0"
|
10
10
|
gem "sensu-transport", "8.2.0"
|
11
11
|
gem "sensu-spawn", "2.5.0"
|
12
12
|
gem "sensu-redis", "2.4.0"
|
@@ -51,6 +51,9 @@ module Sensu
|
|
51
51
|
unless EM::reactor_running?
|
52
52
|
EM::epoll
|
53
53
|
EM::set_max_timers(200000)
|
54
|
+
EM::error_handler do |error|
|
55
|
+
unexpected_error(error)
|
56
|
+
end
|
54
57
|
end
|
55
58
|
setup_logger(options)
|
56
59
|
load_settings(options)
|
@@ -61,6 +64,33 @@ module Sensu
|
|
61
64
|
setup_process(options)
|
62
65
|
end
|
63
66
|
|
67
|
+
# Handle an unexpected error. This method is used for EM global
|
68
|
+
# catch-all error handling, accepting an error object. Error
|
69
|
+
# handling is opt-in via a configuration option, e.g. `"sensu":
|
70
|
+
# {"global_error_handler": true}`. If a user does not opt-in, the
|
71
|
+
# provided error will be raised (uncaught). If a user opts-in via
|
72
|
+
# configuration, the error will be logged and ignored :itsfine:.
|
73
|
+
#
|
74
|
+
# @param error [Object]
|
75
|
+
def unexpected_error(error)
|
76
|
+
if @settings && @settings[:sensu][:global_error_handler]
|
77
|
+
backtrace = error.backtrace.join("\n")
|
78
|
+
if @logger
|
79
|
+
@logger.warn("global catch-all error handling enabled")
|
80
|
+
@logger.fatal("unexpected error - please address this immediately", {
|
81
|
+
:error => error.to_s,
|
82
|
+
:error_class => error.class,
|
83
|
+
:backtrace => backtrace
|
84
|
+
})
|
85
|
+
else
|
86
|
+
puts "global catch-all error handling enabled"
|
87
|
+
puts "unexpected error - please address this immediately: #{error.to_s}\n#{error.class}\n#{backtrace}"
|
88
|
+
end
|
89
|
+
else
|
90
|
+
raise error
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
64
94
|
# Set up the Sensu logger and its process signal traps for log
|
65
95
|
# rotation and debug log level toggling. This method creates the
|
66
96
|
# logger instance variable: `@logger`.
|
data/lib/sensu/utilities.rb
CHANGED
@@ -190,7 +190,7 @@ module Sensu
|
|
190
190
|
:replace => ""
|
191
191
|
})
|
192
192
|
substituted = encoded_tokens.gsub(/:::([^:].*?):::/) do
|
193
|
-
token, default = $1.to_s.split("|",
|
193
|
+
token, default = $1.to_s.split("|", 2)
|
194
194
|
path = token.split(".").map(&:to_sym)
|
195
195
|
matched = find_attribute_value(attributes, path, default)
|
196
196
|
if matched.nil?
|
data/sensu.gemspec
CHANGED
@@ -14,9 +14,9 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.add_dependency "eventmachine", "1.2.7"
|
15
15
|
s.add_dependency "sensu-json", "2.1.1"
|
16
16
|
s.add_dependency "sensu-logger", "1.2.2"
|
17
|
-
s.add_dependency "sensu-settings", "10.
|
17
|
+
s.add_dependency "sensu-settings", "10.15.0"
|
18
18
|
s.add_dependency "sensu-extension", "1.5.2"
|
19
|
-
s.add_dependency "sensu-extensions", "1.
|
19
|
+
s.add_dependency "sensu-extensions", "1.11.0"
|
20
20
|
s.add_dependency "sensu-transport", "8.2.0"
|
21
21
|
s.add_dependency "sensu-spawn", "2.5.0"
|
22
22
|
s.add_dependency "sensu-redis", "2.4.0"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Porter
|
@@ -31,7 +31,7 @@ cert_chain:
|
|
31
31
|
jOeGyhtQa9j4FFmsEJDg59f5v/3hECXsa3Xuml3foaFHzX3Ya/YIyd2YFxvkFKIu
|
32
32
|
GVbe7A3YdxzdkH2Es/Ym9twdxXaIDdXzj8sWhw==
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date:
|
34
|
+
date: 2019-02-20 00:00:00.000000000 Z
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: eventmachine
|
@@ -81,14 +81,14 @@ dependencies:
|
|
81
81
|
requirements:
|
82
82
|
- - '='
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: 10.
|
84
|
+
version: 10.15.0
|
85
85
|
type: :runtime
|
86
86
|
prerelease: false
|
87
87
|
version_requirements: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
89
|
- - '='
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: 10.
|
91
|
+
version: 10.15.0
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: sensu-extension
|
94
94
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,14 +109,14 @@ dependencies:
|
|
109
109
|
requirements:
|
110
110
|
- - '='
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version: 1.
|
112
|
+
version: 1.11.0
|
113
113
|
type: :runtime
|
114
114
|
prerelease: false
|
115
115
|
version_requirements: !ruby/object:Gem::Requirement
|
116
116
|
requirements:
|
117
117
|
- - '='
|
118
118
|
- !ruby/object:Gem::Version
|
119
|
-
version: 1.
|
119
|
+
version: 1.11.0
|
120
120
|
- !ruby/object:Gem::Dependency
|
121
121
|
name: sensu-transport
|
122
122
|
requirement: !ruby/object:Gem::Requirement
|
metadata.gz.sig
CHANGED
Binary file
|