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 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