sensu-plugins-tomcat 0.1.1 → 0.2.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 +5 -5
- data/CHANGELOG.md +13 -2
- data/README.md +5 -0
- data/bin/metrics-tomcat-jmxproxy.rb +138 -0
- data/lib/sensu-plugins-tomcat/version.rb +2 -2
- metadata +33 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 4c477350a971edfc09651df6c5f8afc7a3044a0ed92899c83a961901d43388d6
|
4
|
+
data.tar.gz: 7fb8697f83894e93747e5cadf5ca7f4e11ff24eb13f4b112c1c0454ad0e96f4b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5648422e52b2e4e90bf0884b933f42d7c850556824d7140dc8a09fd3c5ecf872055e14c574bfd33651bdeb459aa5a6f997e785bf83ad068b54a16445460b3822
|
7
|
+
data.tar.gz: fb8e7c320467b8f2f6b394012e37bb90279ed8d4692018e511bddeebf9c8cc2daa18d509db5b933f866f842a30cb46fe0d5d7ec4c5e24688b778b567ff1e4a92
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +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 [here](https://github.com/sensu-plugins/community/blob/master/HOW_WE_CHANGELOG.md)
|
5
|
+
|
4
6
|
## Unreleased
|
7
|
+
|
8
|
+
## [0.2.0] - 2017-12-22
|
9
|
+
### Added
|
10
|
+
- metrics-tomcat-jmxproxy.rb: Support querying metrics from the jmxproxy servlet (@luyseyal)
|
11
|
+
|
12
|
+
### Changed
|
13
|
+
- updated changelog gudelines and PR templates (@majormoses)
|
14
|
+
|
5
15
|
## [0.1.1] 2017-06
|
6
16
|
### Fixed
|
7
17
|
- Corrected long option value for passwords - from "passowrd" to "password"
|
@@ -17,5 +27,6 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
17
27
|
### Added
|
18
28
|
- Initial release
|
19
29
|
|
20
|
-
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-tomcat/compare/0.
|
30
|
+
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-tomcat/compare/0.2.0...HEAD
|
31
|
+
[0.2.0]: https://github.com/sensu-plugins/sensu-plugins-tomcat/compare/0.1.1...0.2.0
|
21
32
|
[0.1.1]: https://github.com/sensu-plugins/sensu-plugins-tomcat/compare/0.1.0...0.1.1
|
data/README.md
CHANGED
@@ -16,9 +16,14 @@ Check current runtime status/deploymnet status of a application:
|
|
16
16
|
|
17
17
|
Check the percentage of JVM Memory
|
18
18
|
|
19
|
+
**metrics-tomcat-jmxproxy**
|
20
|
+
|
21
|
+
Return value of JMX attribute to Graphite via Tomcat's JMXProxy
|
22
|
+
|
19
23
|
## Files
|
20
24
|
* check-tomcat-app-deployment.rb
|
21
25
|
* check-tomcat-heap-pcnt.rb
|
26
|
+
* metrics-tomcat-jmxproxy.rb
|
22
27
|
|
23
28
|
## Usage
|
24
29
|
|
@@ -0,0 +1,138 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# metrics-tomcat-jmxproxy
|
4
|
+
#
|
5
|
+
# DESCRIPTION:
|
6
|
+
# Return value of JMX attribute to Graphite via Tomcat's JMXProxy
|
7
|
+
#
|
8
|
+
# OUTPUT:
|
9
|
+
# plain text
|
10
|
+
#
|
11
|
+
# PLATFORMS:
|
12
|
+
# Linux
|
13
|
+
#
|
14
|
+
# DEPENDENCIES:
|
15
|
+
# gem: addressable
|
16
|
+
# gem: sensu-plugin
|
17
|
+
# gem: unirest
|
18
|
+
#
|
19
|
+
# USAGE:
|
20
|
+
# Basic Usage:
|
21
|
+
# ./metrics-tomcat-jmxproxy.rb
|
22
|
+
# --url http://localhost:8080
|
23
|
+
# --account admin
|
24
|
+
# --password password
|
25
|
+
# --bean 'java.lang:type=MemoryPool,name=Compressed Class Space'
|
26
|
+
# --attribute PeakUsage
|
27
|
+
# --key used
|
28
|
+
# --scheme my.scheme
|
29
|
+
#
|
30
|
+
# my.scheme.PeakUsage.used 2523848 1513887865
|
31
|
+
#
|
32
|
+
# NOTES:
|
33
|
+
#
|
34
|
+
# See http://localhost:8080/docs/manager-howto.html for security information
|
35
|
+
|
36
|
+
require 'addressable/uri'
|
37
|
+
require 'sensu-plugin/metric/cli'
|
38
|
+
require 'unirest'
|
39
|
+
|
40
|
+
class MetricsTomcatJMXProxy < Sensu::Plugin::Metric::CLI::Graphite
|
41
|
+
option :url,
|
42
|
+
description: 'URL of the Tomcat Manager',
|
43
|
+
short: '-u URL',
|
44
|
+
long: '--url URL',
|
45
|
+
required: true
|
46
|
+
|
47
|
+
option :account,
|
48
|
+
description: 'Username of the Tomcat User that has the manager-jmx role',
|
49
|
+
short: '-a USERNAME',
|
50
|
+
long: '--account USERNAME',
|
51
|
+
required: true
|
52
|
+
|
53
|
+
option :password,
|
54
|
+
description: 'Tomcat User password',
|
55
|
+
short: '-p PASSWORD',
|
56
|
+
long: '--password PASSWORD',
|
57
|
+
required: true
|
58
|
+
|
59
|
+
option :bean,
|
60
|
+
description: 'Full name of the MBean to query',
|
61
|
+
short: '-b VALUE',
|
62
|
+
long: '--bean VALUE',
|
63
|
+
required: true
|
64
|
+
|
65
|
+
option :attribute,
|
66
|
+
description: 'MBean attribute to return. Default metric name',
|
67
|
+
short: '-l VALUE',
|
68
|
+
long: '--attribute VALUE',
|
69
|
+
required: true
|
70
|
+
|
71
|
+
option :attrkey,
|
72
|
+
description: 'Key of a CompositeData MBean attribute. Optional',
|
73
|
+
short: '-k VALUE',
|
74
|
+
long: '--key VALUE',
|
75
|
+
required: false
|
76
|
+
|
77
|
+
option :scheme,
|
78
|
+
description: 'Metric naming scheme. Defaults to hostname',
|
79
|
+
short: '-s SCHEME',
|
80
|
+
long: '--scheme SCHEME',
|
81
|
+
default: Socket.gethostname.to_s
|
82
|
+
|
83
|
+
option :metric,
|
84
|
+
description: 'Override attribute name metric',
|
85
|
+
short: '-M METRIC',
|
86
|
+
long: '--metric METRIC',
|
87
|
+
required: false
|
88
|
+
|
89
|
+
option :timeout,
|
90
|
+
description: 'HTTP request timeout in seconds. Default: 5',
|
91
|
+
short: '-T TIMEOUT',
|
92
|
+
long: '--timeout TIMEOUT',
|
93
|
+
default: 5,
|
94
|
+
required: false
|
95
|
+
|
96
|
+
def run
|
97
|
+
uri = Addressable::URI.parse("#{config[:url]}/manager/jmxproxy?get=#{config[:bean]}&att=#{config[:attribute]}")
|
98
|
+
fq_metric = config[:scheme] + '.' + (config[:metric] || config[:attribute])
|
99
|
+
|
100
|
+
if config[:attrkey]
|
101
|
+
uri.query += "&key=#{config[:attrkey]}"
|
102
|
+
fq_metric += '.' + config[:attrkey].to_s
|
103
|
+
end
|
104
|
+
|
105
|
+
uri.normalize!
|
106
|
+
fq_metric.downcase!
|
107
|
+
|
108
|
+
# Fetch attribute from Tomcat
|
109
|
+
Unirest.timeout(config[:timeout])
|
110
|
+
response = Unirest.get uri.to_s, auth: { user: @config[:account].to_s, password: @config[:password].to_s }
|
111
|
+
|
112
|
+
if response.code != 200
|
113
|
+
critical "Failed to obtain response from Tomcat\n"\
|
114
|
+
"HTTP Response Code: #{response.code}\n"\
|
115
|
+
"URL: #{uri}\n"
|
116
|
+
else
|
117
|
+
# Supported formats:
|
118
|
+
# OK - Attribute get 'java.lang:type=Memory' - Verbose = false
|
119
|
+
# OK - Attribute get 'java.lang:type=Memory' - HeapMemoryUsage - key 'used' = 1234
|
120
|
+
# Error - Error message here\nstacktrace\nstacktrace\n...
|
121
|
+
#
|
122
|
+
# FIXME support CompositeData
|
123
|
+
# OK - Attribute get 'java.lang:type=Memory' - HeapMemoryUsage = javax.management.openmbean.CompositeDataSupport(...)
|
124
|
+
|
125
|
+
fields = response.raw_body.split(' - ')
|
126
|
+
|
127
|
+
if fields[0] != 'OK'
|
128
|
+
trunc_error = fields[1].split("\n")
|
129
|
+
critical "#{fields[0]} #{trunc_error[0].chomp}"
|
130
|
+
end
|
131
|
+
|
132
|
+
output(fq_metric, fields[-1].split(' = ', 2)[1].chomp)
|
133
|
+
ok
|
134
|
+
end
|
135
|
+
rescue Errno::ECONNREFUSED
|
136
|
+
critical "Could not connect to Tomcat on #{config[:url]}"
|
137
|
+
end
|
138
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugins-tomcat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.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: 2017-
|
11
|
+
date: 2017-12-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sensu-plugin
|
@@ -25,19 +25,19 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: addressable
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.3.8
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 2.3.8
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: crack
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,33 +53,33 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.4.3
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: unirest
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
62
|
-
type: :
|
61
|
+
version: 1.1.2
|
62
|
+
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - '='
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 1.1.2
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: bundler
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '1.7'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '1.7'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: github-markup
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -164,6 +164,20 @@ dependencies:
|
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '3.4'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: simplecov
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 0.15.1
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 0.15.1
|
167
181
|
- !ruby/object:Gem::Dependency
|
168
182
|
name: yard
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -183,6 +197,7 @@ email: "<sensu-users@googlegroups.com>"
|
|
183
197
|
executables:
|
184
198
|
- check-tomcat-app-deployment.rb
|
185
199
|
- check-tomcat-heap-pcnt.rb
|
200
|
+
- metrics-tomcat-jmxproxy.rb
|
186
201
|
extensions: []
|
187
202
|
extra_rdoc_files: []
|
188
203
|
files:
|
@@ -191,6 +206,7 @@ files:
|
|
191
206
|
- README.md
|
192
207
|
- bin/check-tomcat-app-deployment.rb
|
193
208
|
- bin/check-tomcat-heap-pcnt.rb
|
209
|
+
- bin/metrics-tomcat-jmxproxy.rb
|
194
210
|
- lib/sensu-plugins-tomcat.rb
|
195
211
|
- lib/sensu-plugins-tomcat/version.rb
|
196
212
|
homepage: https://github.com/sensu-plugins/sensu-plugins-tomcat
|
@@ -219,7 +235,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
219
235
|
version: '0'
|
220
236
|
requirements: []
|
221
237
|
rubyforge_project:
|
222
|
-
rubygems_version: 2.
|
238
|
+
rubygems_version: 2.7.3
|
223
239
|
signing_key:
|
224
240
|
specification_version: 4
|
225
241
|
summary: Sensu plugins for tomcat
|