mirror of
https://github.com/munin-monitoring/contrib.git
synced 2018-11-08 00:59:34 +01:00
Create virtualbox_ram_usage
This graph shows the ram usage of every single VM process.
This commit is contained in:
parent
4a7a0de134
commit
9ed92290bf
66
plugins/virtualization/virtualbox_ram_usage
Normal file
66
plugins/virtualization/virtualbox_ram_usage
Normal file
@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# evaluate the current ram usage of every vm running on this host
|
||||
#
|
||||
# Date: 2011-09-09
|
||||
# Author: Gerald Schnabel ger@ldschnabel.de
|
||||
#
|
||||
# Usage: Place in /etc/munin/plugins (or link it there using ln -s)
|
||||
#
|
||||
# This plugin has to run with the same user like the VirtualBox Server rans
|
||||
# Update munin plugin-conf.d/munin-node file with
|
||||
# [virtualbox_ram]
|
||||
# user VIRTUAL_BOX_SERVER_USER
|
||||
#
|
||||
# Parameters understood:
|
||||
#
|
||||
# config (required)
|
||||
# autoconf (optional - used by munin-config)
|
||||
#
|
||||
# Versions
|
||||
# 2013-05-25 robi fix for handling vm names with dots and dashes; scale graph size by the max memory available; display GB on scales and legend
|
||||
# 2011-09-22 ger@ldschnabel.de fix for handling vm names with spaces and setup metric period to get values
|
||||
# 2011-09-09 ger@ldschnabel.de initial version
|
||||
|
||||
# Todo: sort
|
||||
# readarray -t sorted < <(printf '%s\0' "${array[@]}" | sort -z | xargs -0n1)
|
||||
# see http://stackoverflow.com/questions/7442417/how-to-sort-an-array-in-bash
|
||||
|
||||
|
||||
|
||||
if [ "$1" = "autoconf" ]; then
|
||||
echo yes
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$1" = "config" ]; then
|
||||
RAMTOT=`free -b | grep Mem | awk '{print $2}'`
|
||||
echo 'graph_title Memory usage of virtual machines'
|
||||
echo "graph_args --base 1024 -r --lower-limit 0 --upper-limit $RAMTOT --units-exponent 9"
|
||||
echo 'graph_vlabel GB'
|
||||
echo 'graph_info This graph shows the ram usage of every single VM process.'
|
||||
echo 'graph_category virtualbox'
|
||||
echo 'graph_period second'
|
||||
I=0
|
||||
vboxmanage list vms | sed -r 's/^\"(.*)\" \{.*\}$/\1/' | while read VM_NAME; do
|
||||
VM_NAME_PRINT=`echo -e "${VM_NAME}" | sed 's/[^A-Za-z0-9_]/_/g'`
|
||||
echo "${VM_NAME_PRINT}.label ${VM_NAME}"
|
||||
echo "${VM_NAME_PRINT}.cdef ${VM_NAME_PRINT},1024,*"
|
||||
if [ ${I} -eq 0 ]; then
|
||||
echo "${VM_NAME_PRINT}.draw AREA"
|
||||
else
|
||||
echo "${VM_NAME_PRINT}.draw STACK"
|
||||
fi
|
||||
I=$(( I + 1 ))
|
||||
done
|
||||
exit 0
|
||||
fi
|
||||
|
||||
vboxmanage metrics setup --period 5 --samples 3
|
||||
sleep 5
|
||||
|
||||
vboxmanage list vms | sed -r 's/^\"(.*)\" \{.*\}$/\1/' | while read VM_NAME; do
|
||||
VM_NAME_PRINT=`echo -e "${VM_NAME}" | sed 's/[^A-Za-z0-9_]/_/g'` # s/[.]/_/g;s/[ ]/_/g;s/[-]/_/g
|
||||
vboxmanage metrics query "${VM_NAME}" RAM/Usage/Used | grep -E "^${VM_NAME}" | sed -r 's/^.* ([0-9]+) kB$/'''${VM_NAME_PRINT}'''.value \1/'
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user