5 crsproxy_update_every=15
8 wget 2>/dev/null -O - "$crsproxy_url" |\
14 -e "s/^/crsproxy_/g" |\
15 egrep "^crsproxy_[a-zA-Z][a-zA-Z0-9_]*=[0-9]+$"
19 # make sure we have all the commands we need
20 require_cmd wget || return 1
22 if [ -z "$crsproxy_url" ]
24 echo >&2 "$PROGRAM_NAME: crsproxy: not configured. Please set crsproxy_url='url' in $confd/crsproxy.conf"
28 # check once if the url works
29 wget 2>/dev/null -O /dev/null "$crsproxy_url"
32 echo >&2 "$PROGRAM_NAME: crsproxy: cannot fetch the url: $crsproxy_url. Please set crsproxy_url='url' in $confd/crsproxy.conf"
36 # if the user did not request specific commands
37 # find the commands available
38 if [ -z "$crsproxy_cmds" ]
40 crsproxy_cmds="$(crsproxy_get | cut -d '=' -f 1 | sed "s/^crsproxy_cmd_//g" | sort -u)"
43 # if no commands are available
44 if [ -z "$crsproxy_cmds" ]
46 echo >&2 "$PROGRAM_NAME: crsproxy: cannot find command list automatically. Please set crsproxy_cmds='...' in $confd/crsproxy.conf"
55 CHART crsproxy.connected '' "CRS Proxy Connected Clients" "clients" crsproxy '' line 20000 $crsproxy_update_every
56 DIMENSION web '' absolute 1 1
57 DIMENSION native '' absolute 1 1
58 DIMENSION virtual '' absolute 1 1
59 CHART crsproxy.requests '' "CRS Proxy Requests Rate" "requests / min" crsproxy '' area 20001 $crsproxy_update_every
60 DIMENSION web '' incremental 60 1
61 DIMENSION native '' incremental -60 1
62 CHART crsproxy.clients '' "CRS Proxy Clients Rate" "clients / min" crsproxy '' area 20010 $crsproxy_update_every
63 DIMENSION web '' incremental 60 1
64 DIMENSION native '' incremental -60 1
65 DIMENSION virtual '' incremental 60 1
66 CHART crsproxy.replies '' "CRS Replies Rate" "replies / min" crsproxy '' area 20020 $crsproxy_update_every
67 DIMENSION ok '' incremental 60 1
68 DIMENSION failed '' incremental -60 1
69 CHART crsproxy.bconnections '' "Back-End Connections Rate" "connections / min" crsproxy '' area 20030 $crsproxy_update_every
70 DIMENSION ok '' incremental 60 1
71 DIMENSION failed '' incremental -60 1
75 echo "CHART crsproxy.commands '' 'CRS Commands Requests' 'requests / min' crsproxy '' stacked 20100 $crsproxy_update_every"
76 for x in $crsproxy_cmds
78 echo "DIMENSION $x '' incremental 60 $crsproxy_update_every"
81 echo "CHART crsproxy.commands_failed '' 'CRS Failed Commands' 'replies / min' crsproxy '' stacked 20110 $crsproxy_update_every"
82 for x in $crsproxy_cmds
84 echo "DIMENSION $x '' incremental 60 $crsproxy_update_every"
92 # the first argument to this function is the microseconds since last update
93 # pass this parameter to the BEGIN statement (see bellow).
95 # do all the work to collect / calculate the values
97 # remember: KEEP IT SIMPLE AND SHORT
99 # get the values from crsproxy
100 eval "$(crsproxy_get)"
103 # write the result of the work.
105 BEGIN crsproxy.connected $1
106 SET web = $((crsproxy_web_clients_opened - crsproxy_web_clients_closed))
107 SET native = $((crsproxy_crs_clients_opened - crsproxy_crs_clients_closed))
108 SET virtual = $((crsproxy_virtual_clients_opened - crsproxy_virtual_clients_closed))
110 BEGIN crsproxy.requests $1
111 SET web = $crsproxy_web_requests
112 SET native = $crsproxy_native_requests
114 BEGIN crsproxy.clients $1
115 SET web = $crsproxy_web_clients_opened
116 SET native = $crsproxy_crs_clients_opened
117 SET virtual = $crsproxy_virtual_clients_opened
119 BEGIN crsproxy.replies $1
120 SET ok = $crsproxy_replies_success
121 SET failed = $crsproxy_replies_error
123 BEGIN crsproxy.bconnections $1
124 SET ok = $crsproxy_connections_nonblocking_established
125 SET failed = $crsproxy_connections_nonblocking_failed
129 local native_requests="_native_requests"
130 local web_requests="_web_requests"
131 local replies_error="_replies_error"
134 echo "BEGIN crsproxy.commands $1"
135 for x in $crsproxy_cmds
137 eval "v=\$(( crsproxy_cmd_$x$native_requests + crsproxy_cmd_$x$web_requests ))"
142 echo "BEGIN crsproxy.commands_failed $1"
143 for x in $crsproxy_cmds
145 eval "v=\$crsproxy_cmd_$x$replies_error"