]> arthur.barton.de Git - netdata.git/blob - charts.d/crsproxy.chart.sh
strictier checking
[netdata.git] / charts.d / crsproxy.chart.sh
1 #!/bin/sh
2
3 crsproxy_url="http://127.0.0.1:7999/counters?"
4 crsproxy_cmds=""
5
6 crsproxy_check() {
7         # check once if the url works
8         wget 2>/dev/null -O /dev/null "$crsproxy_url"
9         if [ ! $? -eq 0 ]
10         then
11                 echo >&2 "crsproxy: cannot fetch the url: $crsproxy_url. Please set crsproxy_url='url' in $confd/crsproxy.conf"
12                 return 1
13         fi
14
15         if [ -z "$crsproxy_cmds" ]
16         then
17                 crsproxy_cmds="`wget 2>/dev/null -O - "$crsproxy_url" | egrep "^cmd_[a-zA-Z][a-zA-Z0-9]_[a-z_]+ *= *[0-9]+$" | cut -d '_' -f 2 | sort -u`"
18                 echo
19         fi
20         if [ -z "$crsproxy_cmds" ]
21         then
22                 echo >&2 "crsproxy: cannot find command list automatically. Please set crsproxy_cmds='...' in $confd/crsproxy.conf"
23                 return 1
24         fi
25         return 0
26 }
27
28 crsproxy_create() {
29         # create the charts
30         cat <<EOF
31 CHART crsproxy.connected '' "CRS Proxy Connected Clients" "clients" crsproxy '' line 20000 $update_every
32 DIMENSION web '' absolute-no-interpolation 1 1
33 DIMENSION native '' absolute-no-interpolation 1 1
34 DIMENSION virtual '' absolute-no-interpolation 1 1
35 CHART crsproxy.requests '' "CRS Proxy Requests Rate" "requests/s" crsproxy '' area 20001 $update_every
36 DIMENSION web '' incremental-no-interpolation 1 1
37 DIMENSION native '' incremental-no-interpolation -1 1
38 CHART crsproxy.clients '' "CRS Proxy Clients Rate" "clients/s" crsproxy '' area 20010 $update_every
39 DIMENSION web '' incremental-no-interpolation 1 1
40 DIMENSION native '' incremental-no-interpolation -1 1
41 DIMENSION virtual '' incremental-no-interpolation 1 1
42 CHART crsproxy.replies '' "CRS Replies Rate" "replies/s" crsproxy '' area 20020 $update_every
43 DIMENSION ok '' incremental-no-interpolation 1 1
44 DIMENSION failed '' incremental-no-interpolation -1 1
45 CHART crsproxy.bconnections '' "Back-End Connections Rate" "connections/s" crsproxy '' area 20030 $update_every
46 DIMENSION ok '' incremental-no-interpolation 1 1
47 DIMENSION failed '' incremental-no-interpolation -1 1
48 EOF
49
50         local x=
51         echo "CHART crsproxy.commands '' 'CRS Commands Requests' 'requests/s' crsproxy '' stacked 20100 $update_every"
52         for x in $crsproxy_cmds
53         do
54                 echo "DIMENSION $x '' incremental-no-interpolation 1 1"
55         done
56
57         echo "CHART crsproxy.commands_failed '' 'CRS Failed Commands' 'replies/s' crsproxy '' stacked 20110 $update_every"
58         for x in $crsproxy_cmds
59         do
60                 echo "DIMENSION $x '' incremental-no-interpolation 1 1"
61         done
62
63         return 0
64 }
65
66
67 crsproxy_update() {
68         # the first argument to this function is the microseconds since last update
69         # pass this parameter to the BEGIN statement (see bellow).
70
71         # do all the work to collect / calculate the values
72         # for each dimension
73         # remember: KEEP IT SIMPLE AND SHORT
74
75         # get the values from crsproxy
76         eval "`wget 2>/dev/null -O - "$crsproxy_url" |\
77                 sed -e "s/ \+/ /g" -e "s/\./_/g" -e "s/ = /=/g" -e "s/^/crsproxy_/g" |\
78                 egrep "^crsproxy_[a-zA-Z][a-zA-Z0-9_]*=[0-9]+$"`"
79
80
81         # write the result of the work.
82         cat <<VALUESEOF
83 BEGIN crsproxy.connected $1
84 SET web = $((crsproxy_web_clients_opened - crsproxy_web_clients_closed))
85 SET native = $((crsproxy_crs_clients_opened - crsproxy_crs_clients_closed))
86 SET virtual = $((crsproxy_virtual_clients_opened - crsproxy_virtual_clients_closed))
87 END
88 BEGIN crsproxy.requests $1
89 SET web = $crsproxy_web_requests
90 SET native = $crsproxy_native_requests
91 END
92 BEGIN crsproxy.clients $1
93 SET web = $crsproxy_web_clients_opened
94 SET native = $crsproxy_crs_clients_opened
95 SET virtual = $crsproxy_virtual_clients_opened
96 END
97 BEGIN crsproxy.replies $1
98 SET ok = $crsproxy_replies_success
99 SET failed = $crsproxy_replies_error
100 END
101 BEGIN crsproxy.bconnections $1
102 SET ok = $crsproxy_connections_nonblocking_established
103 SET failed = $crsproxy_connections_nonblocking_failed
104 END
105 VALUESEOF
106
107         local native_requests="_native_requests"
108         local web_requests="_web_requests"
109         local replies_error="_replies_error"
110         local x=
111
112         echo "BEGIN crsproxy.commands $1"
113         for x in $crsproxy_cmds
114         do
115                 eval "v=\$(( crsproxy_cmd_$x$native_requests + crsproxy_cmd_$x$web_requests ))"
116                 echo "SET $x = $v"
117         done
118         echo "END"
119
120         echo "BEGIN crsproxy.commands_failed $1"
121         for x in $crsproxy_cmds
122         do
123                 eval "v=\$crsproxy_cmd_$x$replies_error"
124                 echo "SET $x = $v"
125         done
126         echo "END"
127
128         return 0
129 }