From c2ecfcb772a8635b0376821026530114f96c1879 Mon Sep 17 00:00:00 2001 From: Stig Sandbeck Mathisen Date: Sun, 9 Dec 2012 16:27:43 +0100 Subject: [PATCH] Add varnish_devicedetect plugin --- plugins/varnish/varnish_devicedetect | 58 ++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100755 plugins/varnish/varnish_devicedetect diff --git a/plugins/varnish/varnish_devicedetect b/plugins/varnish/varnish_devicedetect new file mode 100755 index 00000000..8ed709c9 --- /dev/null +++ b/plugins/varnish/varnish_devicedetect @@ -0,0 +1,58 @@ +#!/bin/sh + +# © 2012 - Stig Sandbeck Mathisen +# +# varnish_devicedetect - Plugin to graph the device usage ratio of website +# visitors +# +# This plugin reads data from the Varnish shared memory log, and presents a +# stacked percentage graph of the device types of your website visitors for all +# entries present in the log. +# +# Requires: +# +# * Varnish +# +# * varnish-devicedect from https://github.com/varnish/varnish-devicedetect +# + +print_config() { + printf "graph_title Varnish device detection\n" + printf "graph_vlabel percent\n" + printf "graph_category varnish\n" + printf "graph_args --lower-limit 0 --upper-limit 100\n" + + for device in bot mobile-android mobile-iphone pc tablet-android tablet-ipad; do + printf "%s.label %s\n" $device $device + printf "%s.type GAUGE\n" $device + printf "%s.draw AREASTACK\n" $device + done +} + +print_values() { + varnishlog -d -m 'TxHeader:X-UA-Device:' -I X-UA-Device \ + | awk ' + $4 == "X-UA-Device:" { + total++; + devices[$5]++ + } + + END { + for (device in devices) + printf "%s.value %f\n", device, devices[device] / total * 100.0 + } +' +} + +case $1 in + autoconf) + printf "no\n" + exit 1 + ;; + config) + print_config + ;; + *) + print_values + ;; +esac