Repository
Munin (contrib)
Last change
2017-02-22
Graph Categories
Keywords
Language
Shell

haproxy-downtime

Sadly there is no documentation for this plugin.

#!/bin/sh
# Pasha "p01nt" Klets <pasha@klets.name>

name=`basename $0`
title=`echo ${name} | awk -F_ '{print $NF}'`

hp_stat() {
	echo "show stat" | socat unix-connect:/tmp/haproxy stdio
}

servers_section() {
	hp_stat | grep '^'${title}',' |  egrep -v '^'${title}',(FRONTEND|BACKEND)'
}

servers() {
	servers_section | awk -F, '{print $2}'
}

labels() {
	servers_section | awk -F, '{print $2"_dwn.label "$2" down\n"$2"_dwntime.label "$2" downtime\n"$2"_dwn.type COUNTER\n"$2"_dwntime.type COUNTER\n"$2"_dwntime.negative "$2"_dwn" }'
}

values() {
	servers_section | awk -F, '{print $2"_dwn.value "$23"\n"$2"_dwntime.value "$25}'
}

graph_title="${title} downtime"
graph_vlabel=${title}

case $1 in
   config)
		cat <<EOF
graph_category loadbalancer
graph_title  ${graph_title}
graph_vlabel ${graph_vlabel}

`labels`
EOF
		exit 0
	;;
esac

values

exit 0