#!/bin/bash
# -*- sh -*-

: << =cut

=head1 NAME

lxc_cpu_time - Plugin to monitor LXC CPU time usage 

=head1 CONFIGURATION

  [lxc_*]
    user root

=head1 INTERPRETATION

This plugin needs root privilege.

=head1 AUTHOR

vajtsz vajtsz@gmail.com
mitty   mitty@mitty.jp

=head1 LICENSE

Unknown license

=head1 MAGIC MARKERS

 #%# family=auto
 #%# capabilities=autoconf

=cut

. $MUNIN_LIBDIR/plugins/plugin.sh

guest_names=`lxc-ls | sort -u`
for guest in $guest_names; do
 if lxc-info -n $guest 2>&1 | grep -qs RUNNING ; then
  active="$active $guest"
 fi
done
guest_names="$active"
                

f_comm='lxc-cgroup  '

if [ "$1" = "autoconf" ]; then
	if [ -r /proc/stat ]; then
		echo yes
		exit 0
	else
		echo "no (no /proc/stat)"
		exit 0
	fi
fi

if [ "$1" = "config" ]; then

 echo 'graph_title CPU time '
 echo 'graph_args -l 0 --base 1000'
 echo 'graph_vlabel nanosec'
 echo 'graph_category lxc'

 for guest_name in $guest_names;
  do
   guest="$(clean_fieldname $guest_name)"
   echo 'cpu_time_'$guest'.label '$guest_name': CPU time'
   echo 'cpu_time_'$guest'.type DERIVE'
   echo 'cpu_time_'$guest'.min 0'
  done
 exit 0
fi

 for guest_name in $guest_names;
  do
   guest="$(clean_fieldname $guest_name)"
   tmp_g=`$f_comm -n $guest_name cpuacct.usage `
   echo 'cpu_time_'$guest'.value '$tmp_g
  done

