]> arthur.barton.de Git - netdata.git/commitdiff
now it queries cache_object with nc, instead of wget
authorCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Mon, 22 Dec 2014 22:06:30 +0000 (00:06 +0200)
committerCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Mon, 22 Dec 2014 22:06:30 +0000 (00:06 +0200)
charts.d/squid.chart.sh

index e59a9c58da33e9a14ae1ddaf25620f1eba7e5131..7b3434e2b36e36403b643cbc5610b915fc47cd0f 100755 (executable)
@@ -1,14 +1,22 @@
 #!/bin/sh
 
-squid_url="http://127.0.0.1:8080/squid-internal-mgr/counters"
+squid_host="127.0.0.1"
+squid_port="3128"
 squid_update_every=5
 
+squid_get_stats() {
+nc $squid_host $squid_port <<EOF
+GET cache_object://$squid_host:$squid_port/counters HTTP/1.0
+
+EOF
+}
+
 squid_check() {
        # check once if the url works
-       wget 2>/dev/null -O /dev/null "$squid_url"
-       if [ ! $? -eq 0 ]
+       local x=`squid_get_stats | grep client_http.requests`
+       if [ ! $? -eq 0 -o -z "$x" ]
        then
-               echo >&2 "squid: cannot fetch the counters url: $squid_url. Please set squid_url='url' in $confd/squid.conf"
+               echo >&2 "squid: cannot fetch the counters from $squid_host:$squid_port. Please set squid_host='host' and squid_port='port' in $confd/squid.conf"
                return 1
        fi
 
@@ -60,8 +68,8 @@ squid_update() {
        # prepare the script and always grep at the end the lines that are usefull, so that
        # even if something goes wrong, no other code can be executed
 
-       eval "`wget 2>/dev/null -O - "$squid_url" |\
-               sed -e "s/ \+/ /g" -e "s/\./_/g" -e "s/ = /=/g" -e "s/^/local squid_/g" |\
+       eval "`squid_get_stats |\
+                sed -e "s/ \+/ /g" -e "s/\./_/g" -e "s/^\([a-z0-9_]\+\) *= *\([0-9]\+\)$/local squid_\1=\2/g" |\
                egrep "^local squid_(client_http|server_all)_[a-z0-9_]+=[0-9]+$"`"
 
        # write the result of the work.