sensu-plugins-java 1.2.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|