summaryrefslogtreecommitdiff
path: root/files/plugins/xen
blob: 378e0408ebcfead57c72140d9e50fc1da30594be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/sh
#
# Script to monitor CPU usage of Xen domains
#
# Parameters understood:
#
#     conifg    (required)
#     autoconf  (optinal - used by munin-config)
#

if [ "$1" = "autoconf" ]; then
        if which xm > /dev/null ; then
                echo yes
                exit 0
        fi
        echo "no (xm not found)"
        exit 1
fi

# we cache xm list for 5 min for perfomance reasons
((find /var/lib/munin/plugin-state/xm_list.state -mmin -5 2>&1 | grep -qE '^\/var\/lib\/munin\/plugin-state\/xm_list\.state$') && \
    [ `cat /var/lib/munin/plugin-state/xm_list.state | wc -l` -gt 1 ]) || \
    /usr/sbin/xm list | grep -v "^Name .* ID" > /var/lib/munin/plugin-state/xm_list.state

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

        echo 'graph_title Xen Domain Utilerisation'
        echo 'graph_args --base 1000 -l 0'
        echo 'graph_scale no'
        echo 'graph_vlabel mS'
        echo 'graph_category xen'
        echo 'graph_info This graph shows of many mS wall time where used by a domain'
        cat /var/lib/munin/plugin-state/xm_list.state | \
        while read name domid mem cpu state time console; do
                name=`echo $name | sed -e"s/-/_/"`
                echo "$name.label $name"
                echo "$name.type COUNTER"
#               if [ "$name" = "Domain_0" ]; then
#                       echo "$name.draw AREA"
#               else
#                       echo "$name.draw STACK"
#               fi
                echo "$name.min 0"
                echo "$name.info Wall clock time spend for $name"
        done
        exit 0
fi

cat /var/lib/munin/plugin-state/xm_list.state | \
while read name domid mem cpu state time console; do
        name=`echo $name | sed -e"s/-/_/"`
        time=`echo $time | sed -e "s/\.//"`
        echo "$name.value $time"
done