-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhttp_loadtime
More file actions
75 lines (57 loc) · 1.62 KB
/
http_loadtime
File metadata and controls
75 lines (57 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/bin/bash
# -*- sh -*-
: << =cut
=head1 NAME
http_loadtime - Plugin to graph HTTP response time of a specific page
=head1 CONFIGURATION
The following environment variables are used by this plugin
target - URL to fetch (default: "http://localhost/")
=head1 AUTHOR
Unknown authors
(2013) Axel Huebl
=head1 LICENSE
GPLv2
=head1 MAGIC MARKERS
#%# family=auto
#%# capabilities=autoconf
=cut
target=${target:-"http://localhost/"}
wget_opt="-U \"Munin_http_loadtime\" -q --delete-after"
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 ! $wget_bin -q -O /dev/null $target; then
# check if url responds
#
wget $target $wget_opt
if [ "$?" != "0" ]; then
echo "no (Cannot run wget against \"$target\")"
exit 0
fi
echo yes
exit 0
fi
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 load time in seconds of $target"
echo "loadtime.label loadtime"
echo "loadtime.info Load time"
exit 0
fi
TEMPO_DIR=$(mktemp -dt munin_http_loadtime.XXXXXX) || exit 1
trap "rm -rf $TEMPO_DIR" EXIT
cd $TEMPO_DIR || exit 1
loadtime=`$time_bin -f "%e" wget $wget_opt $target 2>&1`
cd - >/dev/null
echo "loadtime.value $loadtime"