diff options
author | Micah Anderson <micah@riseup.net> | 2011-03-25 00:25:28 -0400 |
---|---|---|
committer | Micah Anderson <micah@riseup.net> | 2011-03-25 00:25:28 -0400 |
commit | 4b0487fbea9e4fb828e618182215df0318b7ed1e (patch) | |
tree | ebc06f3da869c9ffa83b5ea929e6ddfa82245c14 /files/plugins/xen_traffic_all | |
parent | d4ca996f8e6d28d7c8f8ad2c922d6205c6b94dcb (diff) | |
parent | 17df63f17e1aab4c15584b41fbe7fe925503e054 (diff) |
Merge remote-tracking branch 'immerda/master'
Conflicts:
manifests/host.pp
manifests/host/cgi.pp
manifests/plugin.pp
manifests/plugin/deploy.pp
manifests/plugins/apache.pp
manifests/plugins/base.pp
manifests/plugins/dom0.pp
manifests/plugins/gentoo.pp
manifests/plugins/interfaces.pp
manifests/plugins/linux.pp
manifests/plugins/openbsd.pp
manifests/plugins/physical.pp
manifests/plugins/selinux.pp
manifests/plugins/vserver.pp
Diffstat (limited to 'files/plugins/xen_traffic_all')
-rw-r--r-- | files/plugins/xen_traffic_all | 55 |
1 files changed, 34 insertions, 21 deletions
diff --git a/files/plugins/xen_traffic_all b/files/plugins/xen_traffic_all index 76d4ded..c5bbfbb 100644 --- a/files/plugins/xen_traffic_all +++ b/files/plugins/xen_traffic_all @@ -11,6 +11,11 @@ #%# family=auto #%# capabilities=autoconf +# 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 .* Console$" > /var/lib/munin/plugin-state/xm_list.state + if [ "$1" = "autoconf" ]; then if which xm > /dev/null ; then echo yes @@ -32,34 +37,42 @@ if [ "$1" = "config" ]; then echo 'graph_vlabel bits received (-) / sent (+) per ${graph_period}' echo 'graph_args --base 1024 -l 0' echo 'graph_category xen' - DOMAINS=$(xm list | awk '{print $1}' | egrep -v "^(Name|Domain-0)") + DOMAINS=$(cat /var/lib/munin/plugin-state/xm_list.state | awk '{print $1}' | egrep -v "^(Name|Domain-0)") for dom in $DOMAINS; do - devs=$( xm network-list $dom |\ - egrep "^[0-9]+" | sed 's@^.*vif/\([0-9]*\)/\([0-9]*\).*$@vif\1.\2@') - real_name=$( echo $dom | sed -e's/-/_/g' ) - name=$real_name - for dev in $devs; do - if [ ${#devs} -gt 1 ]; then - name=$real_name"_"`echo $dev | sed 's/\./\_/'` - fi + # we update network devices only twice an hour + ((find /var/lib/munin/plugin-state/xm_net_$dom.state -mmin -30 > /dev/null 2>&1) && \ + [ `cat /var/lib/munin/plugin-state/xm_net_$dom.state | wc -l` -gt 0 ]) || \ + (/usr/sbin/xm network-list $dom |\ + egrep "^[0-9]+" | sed 's@^.*vif/\([0-9]*\)/\([0-9]*\).*$@vif\1.\2@' > /var/lib/munin/plugin-state/xm_net_$dom.state) + devs=$(cat /var/lib/munin/plugin-state/xm_net_$dom.state) + real_name=$( echo $dom | sed -e's/-/_/g' ) + name=$real_name + for dev in $devs; do + if [ ${#devs} -gt 1 ]; then + name=$real_name"_"`echo $dev | sed 's/\./\_/'` + fi - echo $name'Down.label received' - echo $name'Down.type COUNTER' - echo $name'Down.graph no' - echo "${name}Down.cdef ${name}Down,8,*" - echo "${name}Up.label ${name}" - echo $name'Up.type COUNTER' - echo "${name}Up.negative ${name}Down" - echo "${name}Up.cdef ${name}Up,8,*" - done + echo $name'Down.label received' + echo $name'Down.type COUNTER' + echo $name'Down.graph no' + echo "${name}Down.cdef ${name}Down,8,*" + echo "${name}Up.label ${name}" + echo $name'Up.type COUNTER' + echo "${name}Up.negative ${name}Down" + echo "${name}Up.cdef ${name}Up,8,*" + done done exit 0 fi -DOMAINS=$(xm list | awk '{print $1}' | egrep -v "^(Name|Domain-0)") +DOMAINS=$(cat /var/lib/munin/plugin-state/xm_list.state | awk '{print $1}' | egrep -v "^(Name|Domain-0)") for dom in $DOMAINS; do - devs=$( xm network-list $dom |\ - egrep "^[0-9]+" | sed 's@^.*vif/\([0-9]*\)/\([0-9]*\).*$@vif\1.\2@') + # we update network devices only twice an hour + ((find /var/lib/munin/plugin-state/xm_net_$dom.state -mmin -30 > /dev/null 2>&1) && \ + [ `cat /var/lib/munin/plugin-state/xm_net_$dom.state | wc -l` -gt 0 ]) || \ + (/usr/sbin/xm network-list $dom |\ + egrep "^[0-9]+" | sed 's@^.*vif/\([0-9]*\)/\([0-9]*\).*$@vif\1.\2@' > /var/lib/munin/plugin-state/xm_net_$dom.state) + devs=$(cat /var/lib/munin/plugin-state/xm_net_$dom.state) real_name=$( echo $dom | sed -e's/-/_/g' ) name=$real_name for dev in $devs; do |