#!/bin/sh
-crsproxy_url="http://127.0.0.1:7999/counters?"
-crsproxy_cmds=""
+crsproxy_url=
+crsproxy_cmds=
+crsproxy_update_every=15
+
+crsproxy_get() {
+ wget 2>/dev/null -O - "$crsproxy_url" |\
+ sed \
+ -e "s/ \+/ /g" \
+ -e "s/\./_/g" \
+ -e "s/ =/=/g" \
+ -e "s/= /=/g" \
+ -e "s/^/crsproxy_/g" |\
+ egrep "^crsproxy_[a-zA-Z][a-zA-Z0-9_]*=[0-9]+$"
+}
crsproxy_check() {
+ if [ -z "$crsproxy_url" ]
+ then
+ echo >&2 "$PROGRAM_NAME: crsproxy: not configured. Please set crsproxy_url='url' in $confd/crsproxy.conf"
+ return 1
+ fi
+
# check once if the url works
wget 2>/dev/null -O /dev/null "$crsproxy_url"
if [ ! $? -eq 0 ]
then
- echo >&2 "crsproxy: cannot fetch the url: $crsproxy_url. Please set crsproxy_url='url' in $confd/crsproxy.conf"
+ echo >&2 "$PROGRAM_NAME: crsproxy: cannot fetch the url: $crsproxy_url. Please set crsproxy_url='url' in $confd/crsproxy.conf"
return 1
fi
+ # if the user did not request specific commands
+ # find the commands available
if [ -z "$crsproxy_cmds" ]
then
- 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`"
- echo
+ crsproxy_cmds="$(crsproxy_get | cut -d '=' -f 1 | sed "s/^crsproxy_cmd_//g" | sort -u)"
fi
+
+ # if no commands are available
if [ -z "$crsproxy_cmds" ]
then
- echo >&2 "crsproxy: cannot find command list automatically. Please set crsproxy_cmds='...' in $confd/crsproxy.conf"
+ echo >&2 "$PROGRAM_NAME: crsproxy: cannot find command list automatically. Please set crsproxy_cmds='...' in $confd/crsproxy.conf"
return 1
fi
return 0
crsproxy_create() {
# create the charts
cat <<EOF
-CHART crsproxy.connected '' "CRS Proxy Connected Clients" "clients" crsproxy '' line 20000 $update_every
-DIMENSION web '' absolute-no-interpolation 1 1
-DIMENSION native '' absolute-no-interpolation 1 1
-DIMENSION virtual '' absolute-no-interpolation 1 1
-CHART crsproxy.requests '' "CRS Proxy Requests Rate" "requests/s" crsproxy '' area 20001 $update_every
-DIMENSION web '' incremental-no-interpolation 1 1
-DIMENSION native '' incremental-no-interpolation -1 1
-CHART crsproxy.clients '' "CRS Proxy Clients Rate" "clients/s" crsproxy '' area 20010 $update_every
-DIMENSION web '' incremental-no-interpolation 1 1
-DIMENSION native '' incremental-no-interpolation -1 1
-DIMENSION virtual '' incremental-no-interpolation 1 1
-CHART crsproxy.replies '' "CRS Replies Rate" "replies/s" crsproxy '' area 20020 $update_every
-DIMENSION ok '' incremental-no-interpolation 1 1
-DIMENSION failed '' incremental-no-interpolation -1 1
-CHART crsproxy.bconnections '' "Back-End Connections Rate" "connections/s" crsproxy '' area 20030 $update_every
-DIMENSION ok '' incremental-no-interpolation 1 1
-DIMENSION failed '' incremental-no-interpolation -1 1
+CHART crsproxy.connected '' "CRS Proxy Connected Clients" "clients" crsproxy '' line 20000 $crsproxy_update_every
+DIMENSION web '' absolute 1 1
+DIMENSION native '' absolute 1 1
+DIMENSION virtual '' absolute 1 1
+CHART crsproxy.requests '' "CRS Proxy Requests Rate" "requests / min" crsproxy '' area 20001 $crsproxy_update_every
+DIMENSION web '' incremental 60 1
+DIMENSION native '' incremental -60 1
+CHART crsproxy.clients '' "CRS Proxy Clients Rate" "clients / min" crsproxy '' area 20010 $crsproxy_update_every
+DIMENSION web '' incremental 60 1
+DIMENSION native '' incremental -60 1
+DIMENSION virtual '' incremental 60 1
+CHART crsproxy.replies '' "CRS Replies Rate" "replies / min" crsproxy '' area 20020 $crsproxy_update_every
+DIMENSION ok '' incremental 60 1
+DIMENSION failed '' incremental -60 1
+CHART crsproxy.bconnections '' "Back-End Connections Rate" "connections / min" crsproxy '' area 20030 $crsproxy_update_every
+DIMENSION ok '' incremental 60 1
+DIMENSION failed '' incremental -60 1
EOF
local x=
- echo "CHART crsproxy.commands '' 'CRS Commands Requests' 'requests/s' crsproxy '' stacked 20100 $update_every"
+ echo "CHART crsproxy.commands '' 'CRS Commands Requests' 'requests / min' crsproxy '' stacked 20100 $crsproxy_update_every"
for x in $crsproxy_cmds
do
- echo "DIMENSION $x '' incremental-no-interpolation 1 1"
+ echo "DIMENSION $x '' incremental 60 $crsproxy_update_every"
done
- echo "CHART crsproxy.commands_failed '' 'CRS Failed Commands' 'replies/s' crsproxy '' stacked 20110 $update_every"
+ echo "CHART crsproxy.commands_failed '' 'CRS Failed Commands' 'replies / min' crsproxy '' stacked 20110 $crsproxy_update_every"
for x in $crsproxy_cmds
do
- echo "DIMENSION $x '' incremental-no-interpolation 1 1"
+ echo "DIMENSION $x '' incremental 60 $crsproxy_update_every"
done
return 0
# remember: KEEP IT SIMPLE AND SHORT
# get the values from crsproxy
- eval "`wget 2>/dev/null -O - "$crsproxy_url" |\
- sed -e "s/ \+/ /g" -e "s/\./_/g" -e "s/ = /=/g" -e "s/^/crsproxy_/g" |\
- egrep "^crsproxy_[a-zA-Z][a-zA-Z0-9_]*=[0-9]+$"`"
+ eval "$(crsproxy_get)"
# write the result of the work.