diff --git a/files/ganglia/puppetd_runtime.sh b/files/ganglia/puppetd_runtime.sh index d4f4d26..8ff6512 100644 --- a/files/ganglia/puppetd_runtime.sh +++ b/files/ganglia/puppetd_runtime.sh @@ -1,21 +1,14 @@ #!/usr/bin/env bash -# $Id: puppetd_lastrun.sh 2810 2009-09-02 08:37:05Z uwaechte $ -# plot puppetd last run +# plot puppetd last runtime GMETRIC=$(which gmetric) [[ -x ${GMETRIC} ]] || exit 0 -FILE="/var/lib/puppet/state/state.yaml" +FILE="/var/log/puppet/puppetd_run.log" [[ -r $FILE ]] || exit 0 ## BSD and Linux have different stat commands -if [ $(uname -s) == "Linux" ]; then - STIME=$(stat --format="%Y" ${FILE}) -else - STIME=$(stat -f "%m" -t "%s" ${FILE}) -fi +VALUE=$(grep "Finished catalog run" /var/log/puppet/puppetd_run.log |tail -1 |sed 's/.*in \(.*\) seconds/\1/') -NOW=$(date +"%s") -GMETRIC="${GMETRIC} --dmax=30000 --tmax=350 --units=lastrun --type=int32" -VALUE=$[ ( ${NOW} - ${STIME} ) / 60 ] -$GMETRIC --value=${VALUE} --name="Minutes since last Puppet run" +GMETRIC="${GMETRIC} --dmax=30000 --tmax=350 --units=Seconds --type=float" +$GMETRIC --value=${VALUE} --name="Puppet runtime" diff --git a/manifests/init.pp b/manifests/init.pp index 92f2010..6a657c7 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -7,7 +7,7 @@ class puppet ( $run_hour = '*/1', $run_minute = '10', $run_if_ipmatch = '', - $maxsleep = '640' + $maxsleep = '3200' ) { $puppet_service = $::kernel ? { 'Darwin' => 'org.macports.puppet', @@ -110,15 +110,14 @@ class puppet ( } if defined(Class['ganglia::monitor']) { - Ganglia::Gmetric::Cron { - source => 'puppet/ganglia', - ensure => $ensure, - } + Ganglia::Gmetric::Cron { + source => 'puppet/ganglia', + ensure => $ensure, + } - ganglia::gmetric::cron { 'puppetd_lastrun.sh': runwhen => '5', } - ganglia::gmetric::cron { 'puppetd_runtime.sh': runwhen => '15', } + ganglia::gmetric::cron { 'puppetd_lastrun.sh': runwhen => '5'; 'puppetd_runtime.sh': runwhen => '15'; } - } + } } } $puppet_user = $operatingsystem ? {