Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / plugins / haproxy / haproxy-sessions-by-servers @ c3660c2a

Historique | Voir | Annoter | Télécharger (2,7 ko)

1 825cb214 Allan Parsons
#!/bin/bash
2
# Allan Parsons (allan.parsons@gmail.com)
3 41db1b55 Allan Parsons
# This was a rewrite by Allan Parsons
4
#
5
# Original Author: Pasha "p01nt" Klets <pasha@klets.name>
6
#
7 825cb214 Allan Parsons
8
##DEBUGDEBUG
9
#MUNIN_LIBDIR=/usr/share/munin
10
#. $MUNIN_LIBDIR/plugins/plugin.sh
11
#socket="/var/run/haproxy.sock"
12
13
14 8b63e3cd Pasha Klets
15
name=`basename $0`
16
title=`echo ${name} | awk -F_ '{print $NF}'`
17 825cb214 Allan Parsons
SVNAME='BACKEND'
18
LIST=$backend
19 8b63e3cd Pasha Klets
20
21
22 825cb214 Allan Parsons
function parse_url {
23
	# Modify ifs variable
24
	OIFS=$IFS;
25
	IFS=",";
26
	PXNAME="$1"
27
	SVNAME="$2"
28
	VALUE="$3"
29
	if [ ! -z "$4" ]; then
30
	   SERVERNAME="$4"
31
	fi
32
33
        if [ ! -z "$url" ]; then
34
                LINE1=`curl -s "$url" | head -1 | sed 's/# //'`
35 7b888282 Allan Parsons
                LINE2=`curl -s "$url" | grep "$PXNAME" | grep -v "$PXNAME,$SVNAME" | tr ',' ' '`
36 825cb214 Allan Parsons
        fi
37
38
        if [ ! -z "$socket" ]; then
39
                LINE1=`echo "show stat" | socat unix-connect:"$socket" stdio | head -1 | sed 's/# //'`
40
                LINE2=`echo "show stat" | socat unix-connect:"$socket" stdio | grep "$PXNAME" | grep -v "$PXNAME,$SVNAME" | tr ',' ' '`
41
42
		#echo $CMD
43
		#exit
44
        fi
45 8b63e3cd Pasha Klets
46
47 825cb214 Allan Parsons
	ARRAY1=($LINE1);
48
	if [ ! -z $SERVERNAME ]; then
49
		# Find values
50
		for ((i=0; i<${#ARRAY1[@]}; ++i));
51
		do
52
	        	# Get data
53
		        if [[ "${ARRAY1[$i]}" == "${VALUE}" ]]; then
54
		                o=$i;
55
	        	        o=`expr $o + 1`
56
				RVAL=`echo ${LINE2} | grep ${SERVERNAME} | cut -d" " -f $o`
57
		        fi
58
		done
59
	else
60
		RVAL=`echo 'show stat' | socat unix-connect:"$socket" stdio | grep "$PXNAME" | grep -v "$PXNAME,$SVNAME" | tr ',' ' ' | awk '{print $2}'`
61
	fi
62
	# Reset ifs
63
	IFS=$OIFS;
64
65
	## return val
66
	echo $RVAL
67 8b63e3cd Pasha Klets
}
68
69 825cb214 Allan Parsons
70
71
##
72
## Main
73
##
74
75 8b63e3cd Pasha Klets
graph_title="${title} sessions by servers"
76
graph_vlabel=${title}
77
78 825cb214 Allan Parsons
if [ "$1" = "autoconf" ]; then
79
	echo yes 
80
	exit 0
81
fi
82
83
84
if [ "$1" = "config" ]; then
85
86
	echo "graph_category haproxy"
87
	echo "graph_title  ${graph_title}"
88
	echo "graph_vlabel ${graph_vlabel}"
89 2e950fcd Allan Parsons
	#echo "graph_printf %.0f"
90 825cb214 Allan Parsons
91
	for i in ${LIST}; do
92
		SERVERLIST=$(parse_url ${i} ${SVNAME} svname)
93
		for s in $SERVERLIST; do
94
	        echo "hsessionsbyservers_$s_`echo $i_$s | md5sum | cut -d - -f1 | sed 's/ //g'`.label $s"
95
        	echo "hsessionsbyservers_$s_`echo $i_$s | md5sum | cut -d - -f1 | sed 's/ //g'`.type DERIVE"
96
			echo "hsessionsbyservers_$s_`echo $i_$s | md5sum | cut -d - -f1 | sed 's/ //g'`.info Active Sessions for $s"
97
			echo "hsessionsbyservers_$s_`echo $i_$s | md5sum | cut -d - -f1 | sed 's/ //g'`.min 0"
98
			#echo "hsessionsbyservers_$s_`echo $i_$s | md5sum | cut -d - -f1 | sed 's/ //g'`.draw AREASTACK"
99
        done
100
    done
101
102
    exit 0
103
fi
104
105 8b63e3cd Pasha Klets
106 825cb214 Allan Parsons
for i in ${LIST}; do
107 8b63e3cd Pasha Klets
108 825cb214 Allan Parsons
	SERVERLIST=$(parse_url ${i} ${SVNAME} svname)
109 8b63e3cd Pasha Klets
110 825cb214 Allan Parsons
	for s in $SERVERLIST; do
111
		val=$(parse_url ${i} ${SVNAME} scur ${s})
112
        echo "hsessionsbyservers_$s_`echo $i_$s | md5sum| cut -d - -f1 | sed 's/ //g'`.value ${val}"
113
    done
114
done