diff options
author | Holger Levsen <holger@layer-acht.org> | 2012-12-16 18:31:28 +0100 |
---|---|---|
committer | Holger Levsen <holger@layer-acht.org> | 2012-12-16 18:31:28 +0100 |
commit | 8a7367846f881069f31988c04d31733aa2fb9145 (patch) | |
tree | 30a63f5a220c7aec583ef0550c302395d1332cb8 | |
parent | 0243d098db2a1bfa4ac068a77089b7670d29ec79 (diff) | |
download | jenkins.debian.net-8a7367846f881069f31988c04d31733aa2fb9145.tar.xz |
new jenkins plugin: jenkins_builds_results_summary
-rw-r--r-- | TODO | 2 | ||||
-rwxr-xr-x | etc/munin/plugins/jenkins_builds_results_summary | 71 |
2 files changed, 71 insertions, 2 deletions
@@ -14,9 +14,7 @@ See link:http://jenkins.debian.net/userContent/about.html["about jenkins.debian. == General ToDo -* create general and job specific housekeeping jobs * keep git+svn urls, and use commit hooks. also better for test setups of this setup as well as overall stability. -* run calamaris properly * proper git repo url, outside users/holger ** same for /srv/jenkins.debian.net-scm-sync.git * fully automate backup and backup /var/lib/jenkins/jobs /var/lib/munin /var/log /root/ too diff --git a/etc/munin/plugins/jenkins_builds_results_summary b/etc/munin/plugins/jenkins_builds_results_summary new file mode 100755 index 00000000..5a067d3c --- /dev/null +++ b/etc/munin/plugins/jenkins_builds_results_summary @@ -0,0 +1,71 @@ +#!/bin/sh +# -*- sh -*- + +: << =cut + +=head1 NAME + +jenkins_builds_results_summary - Plugin to measure results of all jenkins builds + +=head1 AUTHOR + +Contributed by Holger Levsen + +=head1 LICENSE + +GPLv2 + +=head1 MAGIC MARKERS + + #%# family=auto + #%# capabilities=autoconf + +=cut + +. $MUNIN_LIBDIR/plugins/plugin.sh + +if [ "$1" = "autoconf" ]; then + echo yes + exit 0 +fi + +STATEFILE=$MUNIN_PLUGSTATE/$(basename $0) + +# delete statefile if it's older than ${jenkins_update_interval} set in /etc/munin/plugin-conf.d/jenkins +if test $(find $STATEFILE -mmin +${jenkins_update_interval}) ; then + rm -f $STATEFILE +fi + +if [ -f $STATEFILE ] && [ "$1" = "" ] ; then + cat $STATEFILE + exit 0 +fi + +if [ "$1" = "config" ]; then + + echo 'graph_title Jenkins Builds results summary' + echo 'graph_args --base 1000 -l 0 ' + echo 'graph_scale no' + echo 'graph_total total' + echo 'graph_vlabel Jenkins Builds results summary' + echo 'graph_category jenkins' + draw=AREA + for STATE in success unstable failure ; do + echo "jenkins_builds_results_all_${STATE}.label ${PREFIX} ${STATE}" + echo "jenkins_builds_results_all_${STATE}.draw $draw" + if [ "$draw" = "AREA" ] ; then draw=STACK ; fi + done + exit 0 +fi + + RESULTS=$(for i in /var/lib/jenkins/jobs/*/builds/*_*/log ; do tail -1 $i 2>/dev/null; echo " \n"; done ) + for STATE in success unstable failure ; do + NR=0 + if [ "$STATE" = "failure" ] ; then + # count aborted as failed + NR=$(echo -e "$RESULTS" | egrep -i -c "($STATE|aborted)") + else + NR=$(echo -e "$RESULTS" | grep -i -c $STATE) + fi + echo "jenkins_builds_results_all_${STATE}.value $NR" | tee -a $STATEFILE + done |