sensu-plugins-java 1.2.0 → 1.3.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 +4 -4
- data/CHANGELOG.md +6 -1
- data/bin/check-java-heap-pcnt-java8.sh +26 -5
- data/bin/check-java-heap-pcnt.sh +25 -3
- data/bin/java-heap-pcnt.sh +23 -3
- data/bin/metrics-java-heap-graphite-java8.sh +7 -0
- data/bin/metrics-java-heap-graphite.sh +8 -1
- data/lib/sensu-plugins-java/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eec29f729a7a98717093cff57fb3f57420a176cd
|
4
|
+
data.tar.gz: 540998b80a6cee2300e9b985c1710a580273df3a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b8b550f2e68bdbf54133fbed8256e7aa8f149e6e77e667e7de0ef8a0a49ac98c8bd2c75a9454f3f3333a99ed4d421236e1945a0acd339fc98bf87c8d87a6fcf
|
7
|
+
data.tar.gz: 8453f95a3c5bf25bdf15ac3b9a34db8f7d49f851be49d9f7b416636f975a70804e5825c84afd52a532f13acf4ce94143a3634bc7522760854d3955309f95b647
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,10 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
|
|
5
5
|
|
6
6
|
## [Unreleased]
|
7
7
|
|
8
|
+
## [1.3.0] - 2017-09-05
|
9
|
+
### Added
|
10
|
+
- option `-l` to change if you wish to grab the max or the current heap limits (@Juan-Moreno)
|
11
|
+
|
8
12
|
## [1.2.0] - 2017-08-20
|
9
13
|
### Added
|
10
14
|
- check-java-permgen.rb: added an option to specify java bin dir (@sovaa)
|
@@ -68,7 +72,8 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
|
|
68
72
|
### Added
|
69
73
|
- initial release
|
70
74
|
|
71
|
-
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-java/compare/1.
|
75
|
+
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-java/compare/1.3.0...HEAD
|
76
|
+
[1.3.0]: https://github.com/sensu-plugins/sensu-plugins-java/compare/1.2.0...1.3.0
|
72
77
|
[1.2.0]: https://github.com/sensu-plugins/sensu-plugins-java/compare/1.1.0...1.2.0
|
73
78
|
[1.1.0]: https://github.com/sensu-plugins/sensu-plugins-java/compare/1.0.0...1.1.0
|
74
79
|
[1.0.0]: https://github.com/sensu-plugins/sensu-plugins-java/compare/0.0.6...1.0.0
|
@@ -6,29 +6,33 @@
|
|
6
6
|
# Date: 2017-02-10
|
7
7
|
# Modified: Nikoletta Kyriakidou
|
8
8
|
|
9
|
+
# Date: 2018-08-30
|
10
|
+
# Modified: Juan Moreno Martinez - Change MAX HEAP instead Current HEAP
|
11
|
+
|
9
12
|
# You must have openjdk-8-jdk and openjdk-8-jre packages installed
|
10
13
|
# http://openjdk.java.net/install/
|
11
14
|
#
|
12
15
|
# Also make sure the user "sensu" can sudo without password
|
13
16
|
|
14
17
|
# #RED
|
15
|
-
while getopts 'w:c:n:o:j:hp' OPT; do
|
18
|
+
while getopts 'w:c:n:o:j:l:hp' OPT; do
|
16
19
|
case $OPT in
|
17
20
|
w) WARN=$OPTARG;;
|
18
21
|
c) CRIT=$OPTARG;;
|
19
22
|
n) NAME=$OPTARG;;
|
20
23
|
o) OPTIONS=$OPTARG;;
|
21
24
|
j) JAVA_BIN=$OPTARG;;
|
25
|
+
l) HEAP_MAX=$OPTARG;;
|
22
26
|
h) hlp="yes";;
|
23
27
|
p) perform="yes";;
|
24
28
|
*) unknown="yes";;
|
25
29
|
esac
|
26
30
|
done
|
27
31
|
|
32
|
+
|
28
33
|
# usage
|
29
34
|
HELP="
|
30
|
-
usage: $0 [ -n value -w value -c value -o value -p -h ]
|
31
|
-
|
35
|
+
usage: $0 [ -n value -w value -c value -o value -l value -p -h ]
|
32
36
|
-n --> Name of JVM process < value
|
33
37
|
-w --> Warning Percentage < value
|
34
38
|
-c --> Critical Percentage < value
|
@@ -36,6 +40,16 @@ HELP="
|
|
36
40
|
-j --> path to java bin dir (include trailing /)
|
37
41
|
-p --> print out performance data
|
38
42
|
-h --> print this help screen
|
43
|
+
-l --> limit, valid value max or current (default current)
|
44
|
+
current: when -Xms and -Xmx same value
|
45
|
+
max: when -Xms and -Xmx have different values
|
46
|
+
|
47
|
+
Requirement: User that launch script must be permisions in sudoers for jps,jstat,jmap
|
48
|
+
sudoers lines suggested:
|
49
|
+
----------
|
50
|
+
sensu ALL=(ALL) NOPASSWD: /usr/bin/jps, /usr/bin/jstat, /usr/bin/jmap
|
51
|
+
Defaults:sensu !requiretty
|
52
|
+
----------
|
39
53
|
"
|
40
54
|
|
41
55
|
if [ "$hlp" = "yes" ]; then
|
@@ -57,8 +71,15 @@ projectSize=$(printf "%s\n" $(printf "$PIDS" | wc -w))
|
|
57
71
|
i=0
|
58
72
|
for PID in $PIDS
|
59
73
|
do
|
60
|
-
|
61
|
-
|
74
|
+
#Get heap capacity of JVM
|
75
|
+
if [ "$HEAP_MAX" == "" ] || [ "$HEAP_MAX" == "current" ]; then
|
76
|
+
TotalHeap=$(sudo ${JAVA_BIN}jstat -gccapacity $PID | tail -n 1 | awk '{ print ($4 + $5 + $6 + $10) / 1024 }')
|
77
|
+
elif [[ "$HEAP_MAX" == "max" ]]; then
|
78
|
+
TotalHeap=$(sudo ${JAVA_BIN}jmap -heap $PID 2> /dev/null | grep MaxHeapSize | tr -s " " | tail -n1 | awk '{ print $3 /1024 /1024 }')
|
79
|
+
else
|
80
|
+
echo "limit options must be max or current"
|
81
|
+
exit 1
|
82
|
+
fi
|
62
83
|
|
63
84
|
#Determine amount of used heap JVM is using
|
64
85
|
UsedHeap=$(sudo ${JAVA_BIN}jstat -gc $PID | tail -n 1 | awk '{ print ($3 + $4 + $6 + $8) / 1024 }')
|
data/bin/check-java-heap-pcnt.sh
CHANGED
@@ -9,19 +9,23 @@
|
|
9
9
|
# Date: 2017-06-06
|
10
10
|
# Modified: Nic Scott - re-work to be java version agnostic
|
11
11
|
|
12
|
+
# Date: 2018-08-30
|
13
|
+
# Modified: Juan Moreno Martinez - Change MAX HEAP instead Current HEAP and fix bug java agnostic
|
14
|
+
|
12
15
|
# depends on jps and jstat in openjdk-devel in openjdk-<VERSION>-jdk and
|
13
16
|
# openjdk-<VERSION>-jre packages being installed
|
14
17
|
# http://openjdk.java.net/install/
|
15
18
|
|
16
19
|
# Also make sure the user "sensu" can sudo jps and jstat without password
|
17
20
|
|
18
|
-
while getopts 'w:c:n:o:j:hp' OPT; do
|
21
|
+
while getopts 'w:c:n:o:j:l:hp' OPT; do
|
19
22
|
case $OPT in
|
20
23
|
w) WARN=$OPTARG;;
|
21
24
|
c) CRIT=$OPTARG;;
|
22
25
|
n) NAME=$OPTARG;;
|
23
26
|
o) OPTIONS=$OPTARG;;
|
24
27
|
j) JAVA_BIN=$OPTARG;;
|
28
|
+
l) HEAP_MAX=$OPTARG;;
|
25
29
|
h) hlp="yes";;
|
26
30
|
p) perform="yes";;
|
27
31
|
*) unknown="yes";;
|
@@ -30,7 +34,7 @@ done
|
|
30
34
|
|
31
35
|
# usage
|
32
36
|
HELP="
|
33
|
-
usage: $0 [ -n value -w value -c value -o value -p -h ]
|
37
|
+
usage: $0 [ -n value -w value -c value -o value -l value -p -h ]
|
34
38
|
-n --> Name of JVM process < value
|
35
39
|
-w --> Warning Percentage < value
|
36
40
|
-c --> Critical Percentage < value
|
@@ -38,6 +42,16 @@ usage: $0 [ -n value -w value -c value -o value -p -h ]
|
|
38
42
|
-j --> path to java bin dir (include trailing /)
|
39
43
|
-p --> print out performance data
|
40
44
|
-h --> print this help screen
|
45
|
+
-l --> limit, valid value max or current (default current)
|
46
|
+
current: when -Xms and -Xmx same value
|
47
|
+
max: when -Xms and -Xmx have different values
|
48
|
+
|
49
|
+
Requirement: User that launch script must be permisions in sudoers for jps,jstat,jmap
|
50
|
+
sudoers lines suggested:
|
51
|
+
----------
|
52
|
+
sensu ALL=(ALL) NOPASSWD: /usr/bin/jps, /usr/bin/jstat, /usr/bin/jmap
|
53
|
+
Defaults:sensu !requiretty
|
54
|
+
----------
|
41
55
|
"
|
42
56
|
|
43
57
|
if [ "$hlp" = "yes" ]; then
|
@@ -62,7 +76,7 @@ fi
|
|
62
76
|
JSTAT=$(sudo ${JAVA_BIN}jstat -gc $PID | tail -n 1)
|
63
77
|
|
64
78
|
# Java 8 jstat -gc returns 17 columns Java 7 returns 15
|
65
|
-
if [[ $
|
79
|
+
if [[ $(echo $JSTAT| wc -w) -gt 15 ]]; then
|
66
80
|
# Metaspace is not a part of heap in Java 8
|
67
81
|
#Get heap capacity of JVM
|
68
82
|
TotalHeap=$(echo $JSTAT | awk '{ print ($1 + $2 + $5 + $7) / 1024 }')
|
@@ -76,6 +90,14 @@ else
|
|
76
90
|
UsedHeap=$(echo $JSTAT | awk '{ print ($3 + $4 + $6 + $8 + $10) / 1024 }')
|
77
91
|
fi
|
78
92
|
|
93
|
+
|
94
|
+
if [[ "$HEAP_MAX" == "max" ]]; then
|
95
|
+
TotalHeap=$(sudo ${JAVA_BIN}jmap -heap $PID 2> /dev/null | grep MaxHeapSize | tr -s " " | tail -n1 | awk '{ print $3 /1024 /1024 }')
|
96
|
+
elif [ "$HEAP_MAX" != "" ] && [ "$HEAP_MAX" != "current" ]; then
|
97
|
+
echo "limit options must be max or current"
|
98
|
+
exit 3
|
99
|
+
fi
|
100
|
+
|
79
101
|
#Get heap usage percentage
|
80
102
|
HeapPer=$(echo "scale=3; $UsedHeap / $TotalHeap * 100" | bc -l| cut -d "." -f1)
|
81
103
|
|
data/bin/java-heap-pcnt.sh
CHANGED
@@ -6,17 +6,21 @@
|
|
6
6
|
# Date: 2013-9-30
|
7
7
|
# Modified: Mario Harvey - badmadrad.com
|
8
8
|
|
9
|
+
# Date: 2018-08-30
|
10
|
+
# Modified: Juan Moreno Martinez - Change MAX HEAP instead Current HEAP
|
11
|
+
|
9
12
|
# You must have openjdk-7-jdk and openjdk-7-jre packages installed
|
10
13
|
# http://openjdk.java.net/install/
|
11
14
|
|
12
15
|
# Also make sure the user "sensu" can sudo without password
|
13
16
|
|
14
17
|
# #RED
|
15
|
-
while getopts 'w:c:n:hp' OPT; do
|
18
|
+
while getopts 'w:c:n:l:hp' OPT; do
|
16
19
|
case $OPT in
|
17
20
|
w) WARN=$OPTARG;;
|
18
21
|
c) CRIT=$OPTARG;;
|
19
22
|
n) NAME=$OPTARG;;
|
23
|
+
l) HEAP_MAX=$OPTARG;;
|
20
24
|
h) hlp="yes";;
|
21
25
|
p) perform="yes";;
|
22
26
|
*) unknown="yes";;
|
@@ -32,6 +36,16 @@ HELP="
|
|
32
36
|
-c --> Critical Percentage < value
|
33
37
|
-p --> print out performance data
|
34
38
|
-h --> print this help screen
|
39
|
+
-l --> limit, valid value max or current (default current)
|
40
|
+
current: when -Xms and -Xmx same value
|
41
|
+
max: when -Xms and -Xmx have different values
|
42
|
+
|
43
|
+
Requirement: User that launch script must be permisions in sudoers for jps,jstat,jmap
|
44
|
+
sudoers lines suggested:
|
45
|
+
----------
|
46
|
+
sensu ALL=(ALL) NOPASSWD: /usr/bin/jps, /usr/bin/jstat, /usr/bin/jmap
|
47
|
+
Defaults:sensu !requiretty
|
48
|
+
----------
|
35
49
|
"
|
36
50
|
|
37
51
|
if [ "$hlp" = "yes" ]; then
|
@@ -53,8 +67,14 @@ if [ $COUNT != 1 ]; then
|
|
53
67
|
fi
|
54
68
|
|
55
69
|
#Get heap capacity of JVM
|
56
|
-
|
57
|
-
|
70
|
+
if [ "$HEAP_MAX" == "" ] || [ "$HEAP_MAX" == "current" ]; then
|
71
|
+
TotalHeap=$(sudo ${JAVA_BIN}jstat -gccapacity $PID | tail -n 1 | awk '{ print ($4 + $5 + $6 + $10) / 1024 }')
|
72
|
+
elif [[ "$HEAP_MAX" == "max" ]]; then
|
73
|
+
TotalHeap=$(sudo ${JAVA_BIN}jmap -heap $PID 2> /dev/null | grep MaxHeapSize | tr -s " " | tail -n1 | awk '{ print $3 /1024 /1024 }')
|
74
|
+
else
|
75
|
+
echo "limit options must be max or current"
|
76
|
+
exit 1
|
77
|
+
fi
|
58
78
|
#Determine amount of used heap JVM is using
|
59
79
|
UsedHeap=$(sudo jstat -gc $PID | tail -n 1 | awk '{ print ($3 + $4 + $6 + $8 + $10) / 1024 }')
|
60
80
|
|
@@ -4,6 +4,9 @@
|
|
4
4
|
|
5
5
|
# Modified: Nikoletta Kyriakidou
|
6
6
|
|
7
|
+
# Date: 2018-08-30
|
8
|
+
# Modified: Juan Moreno Martinez - Add MAX HEAP metric
|
9
|
+
|
7
10
|
# You must have openjdk-8-jdk and openjdk-8-jre packages installed
|
8
11
|
# http://openjdk.java.net/install/
|
9
12
|
|
@@ -37,6 +40,9 @@ NAME=${NAME:=0}
|
|
37
40
|
PID=$(sudo jps | grep " $NAME$" | awk '{ print $1}')
|
38
41
|
for PID in $PIDS
|
39
42
|
do
|
43
|
+
#Get max heap capacity of JVM
|
44
|
+
MaxHeap=$(sudo jmap -heap $PID 2> /dev/null | grep MaxHeapSize | tr -s " " | tail -n1 | awk '{ print $3 /1024 /1024 }')
|
45
|
+
|
40
46
|
#Get heap capacity of JVM
|
41
47
|
TotalHeap=$(sudo jstat -gccapacity $PID | tail -n 1 | awk '{ print ($4 + $5 + $6 + $10) / 1024 }')
|
42
48
|
|
@@ -60,6 +66,7 @@ do
|
|
60
66
|
project=$projectName
|
61
67
|
fi
|
62
68
|
|
69
|
+
echo "JVMs.$SCHEME.$project.Max_Heap $MaxHeap `date '+%s'`"
|
63
70
|
echo "JVMs.$SCHEME.$project.Committed_Heap $TotalHeap `date '+%s'`"
|
64
71
|
echo "JVMs.$SCHEME.$project.Used_Heap $UsedHeap `date '+%s'`"
|
65
72
|
echo "JVMs.$SCHEME.$project.Eden_Util $ParEden `date '+%s'`"
|
@@ -7,6 +7,9 @@
|
|
7
7
|
# Date: 2017-06-06
|
8
8
|
# Modified: Nic Scott - re-work to be java version agnostic
|
9
9
|
|
10
|
+
# Date: 2018-08-30
|
11
|
+
# Modified: Juan Moreno Martinez - Add MAX HEAP metric and fix bug java agnostic
|
12
|
+
|
10
13
|
# depends on jps and jstat in openjdk-devel in openjdk-<VERSION>-jdk and
|
11
14
|
# openjdk-<VERSION>-jre packages being installed
|
12
15
|
# http://openjdk.java.net/install/
|
@@ -49,6 +52,9 @@ do
|
|
49
52
|
JSTAT=$(sudo ${JAVA_BIN}jstat -gc $PID | tail -n 1)
|
50
53
|
|
51
54
|
# Java version indifferent memory stats
|
55
|
+
#Determine MaxHeap
|
56
|
+
MaxHeap=$(sudo jmap -heap $PID 2> /dev/null | grep MaxHeapSize | tr -s " " | tail -n1 | awk '{ print $3 /1024 /1024 }')
|
57
|
+
|
52
58
|
#Determine Old Space Utilization
|
53
59
|
OldGen=$(echo $JSTAT | awk '{ print ($8) / 1024 }')
|
54
60
|
|
@@ -60,7 +66,7 @@ do
|
|
60
66
|
|
61
67
|
# Java version-specific memory stats
|
62
68
|
# Java 8 jstat -gc returns 17 columns Java 7 returns 15
|
63
|
-
if [[ $
|
69
|
+
if [[ $(echo $JSTAT| wc -w) -gt 15 ]]; then
|
64
70
|
# Metaspace is NOT a part of heap in Java 8
|
65
71
|
#Get heap capacity of JVM
|
66
72
|
TotalHeap=$(echo $JSTAT | awk '{ print ($1 + $2 + $5 + $7) / 1024 }')
|
@@ -88,6 +94,7 @@ do
|
|
88
94
|
echo "JVMs.$SCHEME.$project.Perm_Capacity $TotalPerm `date '+%s'`"
|
89
95
|
echo "JVMs.$SCHEME.$project.Perm_Util $UsedPerm `date '+%s'`"
|
90
96
|
fi
|
97
|
+
echo "JVMs.$SCHEME.$project.Max_Heap $MaxHeap `date '+%s'`"
|
91
98
|
echo "JVMs.$SCHEME.$project.Committed_Heap $TotalHeap `date '+%s'`"
|
92
99
|
echo "JVMs.$SCHEME.$project.Heap_Util $UsedHeap `date '+%s'`"
|
93
100
|
echo "JVMs.$SCHEME.$project.Eden_Util $ParEden `date '+%s'`"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugins-java
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.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-09-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sensu-plugin
|
@@ -216,7 +216,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
216
216
|
version: '0'
|
217
217
|
requirements: []
|
218
218
|
rubyforge_project:
|
219
|
-
rubygems_version: 2.
|
219
|
+
rubygems_version: 2.6.13
|
220
220
|
signing_key:
|
221
221
|
specification_version: 4
|
222
222
|
summary: Sensu plugins for Java
|