mirror of
https://github.com/munin-monitoring/contrib.git
synced 2025-07-22 02:51:03 +00:00
Plugin lxc: use functions for top-level activities
This clarifies the flow of control and allows to use MUNIN_CAP_DIRTYCONFIG later.
This commit is contained in:
parent
4356a024a7
commit
f00f28cf6f
1 changed files with 75 additions and 59 deletions
|
@ -178,13 +178,7 @@ title_case() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# --- BASIC DEFINES
|
do_autoconf() {
|
||||||
|
|
||||||
active_guests=$(get_active_guests "$exclude")
|
|
||||||
|
|
||||||
# --- AUTOCONF
|
|
||||||
|
|
||||||
if [ "$1" = "autoconf" ]; then
|
|
||||||
if [ ! -r /proc/net/dev ]; then
|
if [ ! -r /proc/net/dev ]; then
|
||||||
echo "no (/proc/net/dev cannot be read)"
|
echo "no (/proc/net/dev cannot be read)"
|
||||||
elif [ ! -e "$lxcpath" ]; then
|
elif [ ! -e "$lxcpath" ]; then
|
||||||
|
@ -192,12 +186,13 @@ if [ "$1" = "autoconf" ]; then
|
||||||
else
|
else
|
||||||
echo yes
|
echo yes
|
||||||
fi
|
fi
|
||||||
exit 0
|
}
|
||||||
fi
|
|
||||||
|
|
||||||
# --- CONFIG OUTPUT
|
|
||||||
|
|
||||||
if [ "$1" = "config" ]; then
|
do_config() {
|
||||||
|
local active_guests guest_name draw_style
|
||||||
|
active_guests=$(get_active_guests "$exclude")
|
||||||
|
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
multigraph lxc_cpu
|
multigraph lxc_cpu
|
||||||
graph_title CPU Usage
|
graph_title CPU Usage
|
||||||
|
@ -335,64 +330,85 @@ $(clean_fieldname "mem_inactive__${guest_name}").label ${guest_name}: Inactive
|
||||||
$(clean_fieldname "mem_inactive__${guest_name}").type GAUGE
|
$(clean_fieldname "mem_inactive__${guest_name}").type GAUGE
|
||||||
EOF
|
EOF
|
||||||
done
|
done
|
||||||
|
}
|
||||||
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# --- DATA OUTPUT
|
do_fetch() {
|
||||||
|
local active_guests cpu_usage device value_up value_down
|
||||||
|
active_guests=$(get_active_guests "$exclude")
|
||||||
|
|
||||||
echo "multigraph lxc_cpu"
|
echo "multigraph lxc_cpu"
|
||||||
for guest_name in $active_guests
|
for guest_name in $active_guests
|
||||||
do
|
|
||||||
for cpu_usage in user system
|
|
||||||
do
|
do
|
||||||
echo "$(clean_fieldname "cpu_${cpu_usage}__${guest_name}").value $(get_lxc_cgroup_info "$guest_name" "cpuacct.stat" | grep "$cpu_usage" | awk '{ print $2; }')"
|
for cpu_usage in user system
|
||||||
|
do
|
||||||
|
echo "$(clean_fieldname "cpu_${cpu_usage}__${guest_name}").value $(get_lxc_cgroup_info "$guest_name" "cpuacct.stat" | grep "$cpu_usage" | awk '{ print $2; }')"
|
||||||
|
done
|
||||||
done
|
done
|
||||||
done
|
|
||||||
|
|
||||||
echo "multigraph lxc_cpu_time"
|
echo "multigraph lxc_cpu_time"
|
||||||
for guest_name in $active_guests
|
for guest_name in $active_guests
|
||||||
do
|
do
|
||||||
echo "$(clean_fieldname "cpu_time__${guest_name}").value $(get_lxc_cgroup_info "$guest_name" "cpuacct.usage")"
|
echo "$(clean_fieldname "cpu_time__${guest_name}").value $(get_lxc_cgroup_info "$guest_name" "cpuacct.usage")"
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "multigraph lxc_logins"
|
echo "multigraph lxc_logins"
|
||||||
for guest_name in $active_guests
|
for guest_name in $active_guests
|
||||||
do
|
do
|
||||||
echo "$(clean_fieldname "logins__${guest_name}").value $(lxc-attach -n "$guest_name" users | wc -w)"
|
echo "$(clean_fieldname "logins__${guest_name}").value $(lxc-attach -n "$guest_name" users | wc -w)"
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "multigraph lxc_net"
|
echo "multigraph lxc_net"
|
||||||
for guest_name in $active_guests
|
for guest_name in $active_guests
|
||||||
do
|
do
|
||||||
device=$(lxc_netdev "$guest_name")
|
device=$(lxc_netdev "$guest_name")
|
||||||
if [ -z "$device" ]; then
|
if [ -z "$device" ]; then
|
||||||
value_up="U"
|
value_up="U"
|
||||||
value_down="U"
|
value_down="U"
|
||||||
else
|
else
|
||||||
value_up=$(grep -E "^ *${device}:" /proc/net/dev | awk '{print $10;}')
|
value_up=$(grep -E "^ *${device}:" /proc/net/dev | awk '{print $10;}')
|
||||||
value_down=$(grep -E "^ *${device}:" /proc/net/dev | awk '{print $2;}')
|
value_down=$(grep -E "^ *${device}:" /proc/net/dev | awk '{print $2;}')
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
$(clean_fieldname "net__${guest_name}_up").value $value_up
|
$(clean_fieldname "net__${guest_name}_up").value $value_up
|
||||||
$(clean_fieldname "net__${guest_name}_down").value $value_down
|
$(clean_fieldname "net__${guest_name}_down").value $value_down
|
||||||
EOF
|
EOF
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "multigraph lxc_proc"
|
echo "multigraph lxc_proc"
|
||||||
for guest_name in $active_guests
|
for guest_name in $active_guests
|
||||||
do
|
do
|
||||||
echo "$(clean_fieldname "lxc_proc__${guest_name}").value $(lxc_count_processes "$guest_name")"
|
echo "$(clean_fieldname "lxc_proc__${guest_name}").value $(lxc_count_processes "$guest_name")"
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "multigraph lxc_ram"
|
echo "multigraph lxc_ram"
|
||||||
for guest_name in $active_guests
|
for guest_name in $active_guests
|
||||||
do
|
do
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
$(clean_fieldname "mem_usage__${guest_name}").value $(get_lxc_cgroup_info "$guest_name" "memory.usage_in_bytes")
|
$(clean_fieldname "mem_usage__${guest_name}").value $(get_lxc_cgroup_info "$guest_name" "memory.usage_in_bytes")
|
||||||
$(clean_fieldname "mem_cache__${guest_name}").value $(get_lxc_cgroup_info "$guest_name" "memory.stat" | grep total_cache | awk '{print $2;}')
|
$(clean_fieldname "mem_cache__${guest_name}").value $(get_lxc_cgroup_info "$guest_name" "memory.stat" | grep total_cache | awk '{print $2;}')
|
||||||
$(clean_fieldname "mem_active__${guest_name}").value $(get_lxc_cgroup_info "$guest_name" "memory.stat" | grep total_active_anon | awk '{print $2;}')
|
$(clean_fieldname "mem_active__${guest_name}").value $(get_lxc_cgroup_info "$guest_name" "memory.stat" | grep total_active_anon | awk '{print $2;}')
|
||||||
$(clean_fieldname "mem_inactive__${guest_name}").value $(get_lxc_cgroup_info "$guest_name" "memory.stat" | grep total_inactive_anon | awk '{print $2;}')
|
$(clean_fieldname "mem_inactive__${guest_name}").value $(get_lxc_cgroup_info "$guest_name" "memory.stat" | grep total_inactive_anon | awk '{print $2;}')
|
||||||
EOF
|
EOF
|
||||||
done
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
case "${1:-}" in
|
||||||
|
autoconf)
|
||||||
|
do_autoconf
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
config)
|
||||||
|
do_config
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"")
|
||||||
|
do_fetch
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo >&2 "Invalid action requested (none of: autoconf / config / '')"
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue