Projet

Général

Profil

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

root / plugins / haproxy / haproxy_errors_frontend @ a717a913

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

1
#!/bin/bash
2
# -*- bash -*-
3

    
4
: << =cut
5

    
6
=head1 NAME
7

    
8
haproxy_errors_frontend -Haproxy Errors Frontend
9

    
10
=head1 CONFIGURATION
11

    
12
[haproxy*]
13
  user root
14
  env.backend backend_name_1 backend_name_2 backend_name_3
15
  env.frontend frontend_name_1 frontend_name_2 frontend_name_3
16
  env.url  http://user:passwd@IP:port/admin?stats;csv
17

    
18
=head1 AUTHOR
19

    
20
Ricardo Fraile <rfrail3@yahoo.es>
21

    
22
=head1 LICENSE
23

    
24
GPLv2
25

    
26
=head1 MAGICK MARKERS
27

    
28
 #%# family=auto
29
 #%# capabilities=autoconf
30

    
31
=cut
32

    
33
. $MUNIN_LIBDIR/plugins/plugin.sh
34

    
35
function parse_url {
36
        # Modify ifs variable
37
        OIFS=$IFS;
38
        IFS=",";
39
        PXNAME="$1"
40
        SVNAME="$2"
41
        VALUE="$3"
42
        LINE1=`curl -s "$url" | head -1 | sed 's/# //'`
43
        LINE2=`curl -s "$url" | grep "$PXNAME,$SVNAME"`
44
        
45
        
46
        ARRAY1=($LINE1);
47

    
48
        # Find values
49
        for ((i=0; i<${#ARRAY1[@]}; ++i));
50
        do
51
                # Get data
52
                if [[ "${ARRAY1[$i]}" == "${VALUE}" ]]; then
53
                        o=$i;
54
                        o=`expr $o + 1`
55
                        echo ${LINE2} | cut -d" " -f $o
56
                fi
57
        done
58

    
59
        # Reset ifs
60
        IFS=$OIFS;
61
}
62

    
63

    
64
SVNAME='FRONTEND'
65
LIST="$frontend"
66

    
67

    
68
if [ "$1" = "autoconf" ]; then
69
	echo yes 
70
	exit 0
71
fi
72

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

    
75
	echo "graph_title Errors ${SVNAME}"
76
	echo 'graph_args --base 1000 -l 0 '
77
	echo 'graph_vlabel Errors'
78
	echo 'graph_scale no'
79
	echo 'graph_category haproxy'
80
	echo "graph_info Errors ${SVNAME}"
81

    
82

    
83
	for i in ${LIST}; do
84
	        echo "ereq`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.label Request Errors $i"
85
        	echo "ereq`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.type DERIVE"
86
	        echo "ereq`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.min 0"
87
        	echo "ereq`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.info Request Errors $i"
88

    
89
	        #echo "econ`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.label Connection Errors $i"
90
        	#echo "econ`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.type DERIVE"
91
	        #echo "econ`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.min 0"
92
        	#echo "econ`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.info Connection Errors $i"
93

    
94
	        #echo "eresp`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.label Response Errors $i"
95
        	#echo "eresp`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.type DERIVE"
96
	        #echo "eresp`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.min 0"
97
        	#echo "eresp`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.info Response Errors $i"
98

    
99
	done
100

    
101
	exit 0
102
fi
103
	for i in ${LIST}; do
104
		EREQ=`parse_url ${i} ${SVNAME} ereq`
105
		#ECON=`parse_url ${i} ${SVNAME} econ`
106
		#ERESP=`parse_url ${i} ${SVNAME} eresp`
107

    
108
	        echo "ereq`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.value $EREQ"
109
	        #echo "econ`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.value $ECON"
110
	        #echo "eresp`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.value $ERESP"
111
	done
112
	
113