root / plugins / php / php_time_execution @ 17f78427
Historique | Voir | Annoter | Télécharger (2,29 ko)
| 1 |
#!/bin/sh |
|---|---|
| 2 |
# |
| 3 |
# Plugin to monitor execution time of PHP with access.log from apache server. |
| 4 |
# Need to use apache module mod_log_config and have set logformat like this: |
| 5 |
# LogFormat "%h %l %u %T/%D %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" time_combined
|
| 6 |
# |
| 7 |
# Min, Max and Avg are calculated on number of page, default 10. On high traffic site, increase this value and you get a better |
| 8 |
# stat, on low traffic site keep small value, it's must be avg number of page every 5 minutes. |
| 9 |
# |
| 10 |
# Require read permitions for $LOG |
| 11 |
# (set in /etc/munin/plugin-conf.d/munin-node on debian) |
| 12 |
# On busy servers you can change value type to COUNTER and set min to 0 to avoid minus peaks at logrotate |
| 13 |
# |
| 14 |
# $Log$ |
| 15 |
# Revision 0.1 2012/04/05 12:00:00 Ulrich Lusseau |
| 16 |
# Initial revision |
| 17 |
# |
| 18 |
# Parameters: |
| 19 |
# |
| 20 |
# config (required) |
| 21 |
# autoconf (optional - used by munin-config) |
| 22 |
# |
| 23 |
# Magick markers (optional): |
| 24 |
#%# family=auto |
| 25 |
#%# capabilities=autoconf |
| 26 |
# |
| 27 |
# config example for /etc/munin/plugin-conf.d/munin-node |
| 28 |
#[apache_generate_time] |
| 29 |
#user root |
| 30 |
#env.logfile /home/newsite/logs/access.log |
| 31 |
#env.sitename mon-code |
| 32 |
#env.nbrpage 10 |
| 33 |
# |
| 34 |
|
| 35 |
LOG=${logfile:-/var/log/apache2/access.log}
|
| 36 |
NAME=${sitename:undefined}
|
| 37 |
NBRPAGE=${nbrpage}
|
| 38 |
|
| 39 |
|
| 40 |
if [ "$1" = "autoconf" ]; then |
| 41 |
if [ -r "$LOG" ]; then |
| 42 |
echo yes |
| 43 |
exit 0 |
| 44 |
else |
| 45 |
echo no |
| 46 |
exit 1 |
| 47 |
fi |
| 48 |
fi |
| 49 |
|
| 50 |
if [ "$1" = "config" ]; then |
| 51 |
|
| 52 |
echo 'graph_title Time to generate PHP page ' $NAME 'v2' |
| 53 |
echo 'graph_args --base 1000 -l 0' |
| 54 |
echo 'graph_vlabel Time in microsecond' |
| 55 |
|
| 56 |
echo "graph_category webserver" |
| 57 |
echo "graph_info This graph shows load time in ms of $target" |
| 58 |
echo "minloadtime.label Min time" |
| 59 |
echo "minloadtime.info Min time" |
| 60 |
echo "avgloadtime.label Avg time" |
| 61 |
echo "avgloadtime.info Avg time" |
| 62 |
echo "maxloadtime.label Max time" |
| 63 |
echo "maxloadtime.info Max time" |
| 64 |
|
| 65 |
exit 0 |
| 66 |
fi |
| 67 |
|
| 68 |
awk '($4 ~ /[0-9]+\/[0-9]+/ && $8 !~ /\.(jpg|JPG|jpeg|JPEG|gif|GIF|png|PNG|txt|TXT|css|CSS|js|JS|zip|ZIP|bmp|BMP)$/)' $LOG | sed -e :a -e '$q;N;'$NBRPAGE',$D;ba' | awk '{print $4}' | awk -F\/ ' MIN=="" || $2 < MIN {MIN=$2} MAX=="" || $2 > MAX {MAX=$2} {SUM += $2} END {print "minloadtime.value ",MIN/1000,"\navgloadtime.value ",SUM/(NR*1000),"\nmaxloadtime.value ",MAX/1000}'
|
| 69 |
|
