Skip to content

Instantly share code, notes, and snippets.

@jdesboeufs
Created April 16, 2019 06:38
Show Gist options
  • Save jdesboeufs/0f074c6115b95aa3dd698f7cb15b0f43 to your computer and use it in GitHub Desktop.
Save jdesboeufs/0f074c6115b95aa3dd698f7cb15b0f43 to your computer and use it in GitHub Desktop.
Munin plugin for Addok
# nombre de requêtes de la semaine passée, de la veille et du jour
echo "{ \"queries_week\": `zcat /var/log/nginx/api-adresse-access.log.[2-8].gz | wc -l`, \"queries_yesterday\": `cat /var/log/nginx/api-adresse-access.log.1 | wc -l`, \"queries_today\": `cat /var/log/nginx/api-adresse-access.log | wc -l` }" > /var/www/html/analytics/stats.json
# score moyen sur les 10000 derniers search
cat /var/log/nginx/api-adresse-access.log.1 /var/log/nginx/api-adresse-access.log | grep "GET /search/\?" | tail -n 10000 | grep " d=[0-9\.]*" -o | sed 's/ d=//' | echo "search_mean.value ` awk '{s+=$1} END{print s/(NR)}'`" > /var/log/addok_current
# score moyen sur les 10000 derniers reverse
cat /var/log/nginx/api-adresse-access.log.1 /var/log/nginx/api-adresse-access.log | tail -n 10000 | grep " d=[0-9\.]*" -o | sed 's/ d=//' | echo "reverse_mean.value `awk '{s+=$1} END{print s/(NR)}'`" >> /var/log/addok_current
# % de requêtes en erreur 500-508
err500=`cat /var/log/nginx/api-adresse-access.log.1 /var/log/nginx/api-adresse-access.log | tail -n 10000 | grep '" 50[0-8] ' -c`
echo -n "err50x.value " > /var/log/addok_err
echo "scale=2;100*$err500/10000" | bc >> /var/log/addok_err
# % de requêtes en erreur 509 (dépassement de quota)
err509=`cat /var/log/nginx/api-adresse-access.log.1 /var/log/nginx/api-adresse-access.log | tail -n 10000 | grep '" 509 ' -c`
echo -n "err509.value " >> /var/log/addok_err
echo "scale=2;100*$err509/10000" | bc >> /var/log/addok_err
# % de requêtes en 200
err200=`cat /var/log/nginx/api-adresse-access.log.1 /var/log/nginx/api-adresse-access.log | tail -n 10000 | grep '" 200 ' -c`
echo -n "err200.value " >> /var/log/addok_err
echo "scale=2;100*$err200/10000" | bc >> /var/log/addok_err
# % de requêtes en 400
err400=`cat /var/log/nginx/api-adresse-access.log.1 /var/log/nginx/api-adresse-access.log | tail -n 10000 | grep '" 400 ' -c`
echo -n "err400.value " >> /var/log/addok_err
echo "scale=2;100*$err400/10000" | bc >> /var/log/addok_err
# % de requêtes en 413
err413=`cat /var/log/nginx/api-adresse-access.log.1 /var/log/nginx/api-adresse-access.log | tail -n 10000 | grep '" 413 ' -c`
echo -n "err413.value " >> /var/log/addok_err
echo "scale=2;100*$err413/10000" | bc >> /var/log/addok_err
#!/bin/sh
# script pour graphes munin des temps de traitement de l'API addok
case $1 in
config)
cat <<'EOM'
graph_title addok response time
graph_vlabel time (s)
graph_category addok
search_mean.label API search mean response time
reverse_mean.label API reverse mean response time
EOM
exit 0;;
esac
cat /var/log/addok_current
#!/bin/sh
# script pour graphes munin des temps de traitement de l'API addok
case $1 in
config)
cat <<'EOM'
graph_title addok queries
graph_vlabel queries
graph_category addok
queries_csv.label /search/csv queries
queries_search.label /search queries
queries_reverse.label /reverse queries
EOM
exit 0;;
esac
logtail -f /var/log/nginx/api-adresse-access.log > /tmp/api-adresse-access.log
echo -n "queries_csv.value "
grep -c "POST /search/csv/" /tmp/api-adresse-access.log
echo -n "queries_search.value "
grep -c "GET /search/" /tmp/api-adresse-access.log
echo -n "queries_reverse.value "
grep -c "GET /reverse/" /tmp/api-adresse-access.log
#!/bin/sh
# script pour graphes munin des résultats de géocodage d'addok
case $1 in
config)
cat <<'EOM'
graph_title addok queries stats
graph_vlabel (%)
graph_category addok
notfound_ratio.label % not found addresses
notfound_ratio.max 100
score_mean.label mean geocoding score
score_mean.max 100
err50x.label % err 500-508
err50x.max 100
err509.label % err 509
err509.max 100
err200.label % OK (200)
err200.max 100
err400.label % Query error (400)
err400.max 100
err413.label % Query too long (413)
err413.max 100
EOM
exit 0;;
esac
notfound=`cat /vz/root/20*/var/log/addok/notfound.log | wc -l`
queries=`cat /vz/root/20*/var/log/addok/queries.log | wc -l`
echo -n "notfound_ratio.value "
echo "scale=2;100*$notfound/$queries" | bc
echo -n "score_mean.value "
echo `tail -n 10000 /vz/root/200/var/log/addok/queries.log | grep "[0-9\.]*$" -o | awk '{s+=$1} END{print 100*s/(NR)}'`
cat /var/log/addok_err
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment