diff --git a/plugins/other/zones_mem b/plugins/other/zones_mem new file mode 100755 index 00000000..c39464e1 --- /dev/null +++ b/plugins/other/zones_mem @@ -0,0 +1,59 @@ +#!/bin/sh + +#%# family=auto +#%# capabilities=autoconf + +PRSTAT=/usr/bin/prstat +PRSTAT_OPTS="-Z 1 1" + +if [ "$1" = 'autoconf' ]; then + if [ -f $PRSTAT ]; then + zones=`/usr/sbin/zoneadm list | wc -l` + if [ $zones -gt 1 ]; then + echo yes + else + echo yes + fi + exit 0 + else + echo no + exit 1 + fi +fi + +if [ "$1" = 'config' ]; then + echo 'graph_title zone memory usage' + echo 'graph_args --upper-limit 100' + echo 'graph_category system' + stack=AREA + $PRSTAT $PRSTAT_OPTS | sed '1,/^ZONEID/d' | grep -v '^Total' | while read i; do + oIFS="$IFS" + IFS=' +' + set -$- $i + name=$1 + label=$8 + printf "$name.label $label\n$name.draw $stack\n$name.warn 95\n" + IFS="$oIFS" + stack=STACK + done + exit 0 +fi + + +# ZONEID NPROC SWAP RSS MEMORY TIME CPU ZONE $ +# 0 48 470M 482M 1.5% 4:05:57 0.0% global $ +# 3 85 2295M 2369M 7.2% 0:36:36 0.0% pearljam $ +# 6 74 13G 3273M 10% 16:51:18 0.0% ministry $ +# Total: 207 processes, 709 lwps, load averages: 0.05, 0.06, 0.11$ + +$PRSTAT $PRSTAT_OPTS | sed '1,/^ZONEID/d' | grep -v '^Total' | while read i; do + oIFS="$IFS" + IFS='% +' + set -$- $i + name=$1 + value=$5 + printf "$name.value $value\n" + IFS="$oIFS" +done