관리-도구
편집 파일: http_loadtime
#!/bin/bash # -*- sh -*- : << =cut =head1 NAME http_loadtime - Plugin to graph the HTTP response times of specific pages =head1 CONFIGURATION The following environment variables are used by this plugin target - comma separated URL(s) to fetch (default: "http://localhost/") example: [http_loadtime] env.target http://localhost.de,http://localhost.de/some-site.html env.requisites true Do not enable the download of page requisites (env.requisites) for https sites since wget needs incredible long to perform this on big sites... =head1 AUTHOR Unknown authors (2013) Axel Huebl =head1 LICENSE GPLv2 =head1 MAGIC MARKERS #%# family=auto #%# capabilities=autoconf =cut . $MUNIN_LIBDIR/plugins/plugin.sh target=${target:-"http://localhost/"} requisites=${requisites:-"false"} urls=`echo $target | tr "," "\n"` wget_opt="--user-agent munin/http_loadtime --no-cache -q" if [ "$requisites" == "true" ]; then wget_opt="$wget_opt --page-requisites" fi time_bin=`which time` if [ "$1" = "autoconf" ]; then result="yes" command -v $time_bin 2>&1 >/dev/null || result=1 command -v tr 2>&1 >/dev/null || result=1 command -v wget 2>&1 >/dev/null || result=1 if [ "$result" != "yes" ]; then echo "no (programs time, wget and tr required)" exit 0 fi # if $target contains more than one url if ! wget -q -O /dev/null $target; then # check if urls respond # for uri in $urls do wget --spider $uri $wget_opt if [ "$?" != "0" ]; then echo "no (Cannot run wget against \"$uri\")" exit 0 fi done fi echo yes exit 0 fi if [ "$1" = "config" ]; then echo "graph_title HTTP loadtime of a page" echo "graph_args --base 1000 -l 0" echo "graph_vlabel Load time in seconds" echo "graph_category network" echo "graph_info This graph shows the load time in seconds" for uri in $urls do uri_short=`echo ${uri:0:30}` if [ "$uri_short" != "$uri" ]; then uri_short=$uri_short"..."; fi esc_uri="$(clean_fieldname "$uri")" echo $esc_uri".label $uri_short" echo $esc_uri".info page load time" done exit 0 fi TEMPO_DIR=$(mktemp -dt munin_http_loadtime.XXXXXX) || exit 1 trap "rm -rf $TEMPO_DIR" EXIT cd $TEMPO_DIR || exit 1 for uri in $urls do loadtime=`$time_bin -f "%e" wget $wget_opt --header='Accept-Encoding: gzip,deflate' $uri 2>&1` esc_uri="$(clean_fieldname "$uri")" echo $esc_uri".value $loadtime" done exit 0