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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 895f9098585c2dc97ec261ecab799d36fe290207
4
- data.tar.gz: 3138e4d7dd08cbaf4d5dbeaa8bb030e4c45ec189
3
+ metadata.gz: eec29f729a7a98717093cff57fb3f57420a176cd
4
+ data.tar.gz: 540998b80a6cee2300e9b985c1710a580273df3a
5
5
  SHA512:
6
- metadata.gz: a7a6610c073aa86ab9e6ffce8ffb810e73240677ff3d98f2e1da0752537f58e79007ce0c82102abfa9b706bc77a768974987c8b90eb8e1621e5f0900a5ee95a8
7
- data.tar.gz: 51f0574f91320de3bb4d2ddf5930ce842291b1a2b5a4b9edcd01349c89991f63087ace945a362aff64b1713275a71ae41725b0635dd9fe369c9857179568808a
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.1.0...HEAD
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
- #Get heap capacity of JVM
61
- TotalHeap=$(sudo ${JAVA_BIN}jstat -gccapacity $PID | tail -n 1 | awk '{ print ($4 + $5 + $6 + $10) / 1024 }')
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 }')
@@ -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 [[ ${#JSTAT[@]} -gt 15 ]]; then
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
 
@@ -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
- TotalHeap=$(sudo jstat -gccapacity $PID | tail -n 1 | awk '{ print ($4 + $5 + $6 + $10) / 1024 }')
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 [[ ${#JSTAT[@]} -gt 15 ]]; then
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'`"
@@ -1,7 +1,7 @@
1
1
  module SensuPluginsJava
2
2
  module Version
3
3
  MAJOR = 1
4
- MINOR = 2
4
+ MINOR = 3
5
5
  PATCH = 0
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
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.2.0
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-08-20 00:00:00.000000000 Z
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.4.5
219
+ rubygems_version: 2.6.13
220
220
  signing_key:
221
221
  specification_version: 4
222
222
  summary: Sensu plugins for Java