#!/bin/bash
#
# OBM Plugin to monitor memory usage an app obm java
# OBM developper: Sylvain Garcia
#
# Parameters:
#
# 	config   (required)
# 	autoconf (optional - only used by munin-config)
#%# family=auto
#%# capabilities=autoconf

PATH=/sbin:/usr/sbin:/bin:/usr/bin
export JAVA_HOME=/usr/lib/jvm/java-6-sun
test -d /usr/lib/jvm/java-1.6.0-openjdk && {
  JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk
}
  test -d /usr/lib/jvm/java-openjdk && {
    JAVA_HOME=/usr/lib/jvm/java-openjdk
}
app_name="obm-tomcat"
app_init_script="/etc/init.d/obm-tomcat"
app_jps_process="Bootstrap"


case $1 in
  autoconf)
    if [ -e $app_init_script ]; then
      echo 'yes'
      exit 0
    else
      echo "no"
      exit 0
    fi
  ;;
  config)
    echo "graph_args --base 1024 -l 0 --vertical-label Bytes"
    echo "graph_title Memory usage ${app_name}";
    echo "graph_category system";
    echo "graph_info This graph show memory usage of ${app_name}"
    echo "graph_vlabel used"
    echo "used.label used"
    exit 0
  ;;
esac

`jps -m | grep -q ${app_jps_process}`
app_running=$?

if [ $app_running ]; then
  PID=$(jps -m | grep ${app_jps_process} | cut -d" " -f1)

  used_list=`jmap -heap $PID 2>/dev/null| grep used | grep MB | cut -d'=' -f2 | cut -d' ' -f2`
  total=0
  for i in $used_list; do
    let total=$total+$i
  done
  echo "used.value $total"
else
  echo "used.value 0"
fi
exit 0
