diff --git a/plugins/other/firebird b/plugins/other/firebird new file mode 100755 index 00000000..b29a2246 --- /dev/null +++ b/plugins/other/firebird @@ -0,0 +1,77 @@ +#!/bin/bash +# Wildcard-plugin to monitor Firebird database transaction stats. To monitor a +# database, link firebird_ to this file. E.g. +# ln -s /usr/share/munin/plugins/if_ /etc/munin/plugins/firebird_employee +# +# ...will monitor firebird database "employee" +# +# "employee" must be an alias configured in the firebird aliases.conf file +# +# You will also need to set +# +# [firebird_employee] +# user root +# +# somewhere in your /etc/munin/plugins-conf.d/ + + +case $1 in + config) + cat << 'EOM' +graph_title Firebird Transaction Stats +graph_order oldest_trans oldest_active oldest_snapshot next_transaction oldest_trans_gap1 oldest_trans_gap2 +graph_args --base 1000 +graph_scale no +graph_category firebird +oldest_trans.label Oldest transaction - OIT +oldest_trans.graph no +oldest_active.label Oldest active +oldest_active.graph no +oldest_snapshot.label Oldest snapshot +oldest_snapshot.graph no +next_transaction.label Next transaction +next_transaction.graph no +oldest_trans.type GAUGE +oldest_active.type GAUGE +oldest_snapshot.type GAUGE +next_transaction.type GAUGE +oldest_trans_gap1.label Next Transaction - OIT +oldest_trans_gap1.value GAUGE +oldest_trans_gap1.warning 100 +oldest_trans_gap1.critical 1000 +oldest_trans_gap2.label Next Transaction - Oldest Snapshot +oldest_trans_gap2.value GAUGE +oldest_trans_gap2.warning 100 +oldest_trans_gap2.critical 1000 +EOM +exit 0;; +esac + +db=`echo $0 | awk -F'_' '{print $2}'` + +/opt/firebird/bin/gstat -h ${db} | awk -F'[\t]+' \ + '{ sub(/^ */,""); + if ($2 == "Oldest transaction") + { + oldest_trans=$3; + print "oldest_transaction.value " $3 + } + if ($2 == "Oldest active") + { + oldest_active=$3 + print "oldest_active.value " $3 + } + if ($2 == "Oldest snapshot") + { + oldest_snapshot=$3 + print "oldest_snapshot.value " $3 + } + if ($2 == "Next transaction") + { + next_transaction=$3 + print "next_transaction.value " $3 + print "oldest_trans_gap1.value " $3 - oldest_trans + print "oldest_trans_gap2.value " $3 - oldest_snapshot + } + + }'