Skip to content
Snippets Groups Projects
Commit 97adb23b authored by Jérôme Charaoui's avatar Jérôme Charaoui
Browse files

Merge branch 'prometheus' into 'master'

Add basic prometheus metrics for backup status.

See merge request !55
parents 06eda435 8f81c852
Branches
Tags
1 merge request!55Add basic prometheus metrics for backup status.
......@@ -13,6 +13,10 @@
# 1 -- Fatal errors (only)
loglevel = 4
# Produce prometheus metrics of backup status (default = no).
# Requires `prometheus-node-exporter` to be installed
reportprom = false
# send a summary of the backup status to
# this email address:
reportemail = root
......
......@@ -513,6 +513,8 @@ setfile $conffile
getconf configdirectory @CFGDIR@/backup.d
getconf scriptdirectory @datadir@
getconf reportdirectory
getconf reportprom
getconf prom_textfile_dir /var/lib/prometheus/node-exporter
getconf reportemail
getconf reporthost
getconf reportspace
......@@ -601,10 +603,10 @@ for file in $files; do
fi
done
## mail the messages to the report address
## reporting
if [ $actions_run == 0 ]; then doit=0
elif [ "$reportemail" == "" ]; then doit=0
elif [ "$reportemail" == "" -a "$reportprom" == "" ]; then doit=0
elif [ $fatals != 0 ]; then doit=1
elif [ $errors != 0 ]; then doit=1
elif [ $halts != 0 ]; then doit=1
......@@ -614,6 +616,52 @@ else doit=0
fi
if [ $doit == 1 ]; then
if [ ! -z "$reportprom" ]; then
if [ -d "$prom_textfile_dir" ]; then
debug "reporting to prometheus"
hostname=`hostname`
# set some defaults, so there aren't empty strings
[ ! -z $warnings ] || warnings=0
[ ! -z $errors ] || errors=0
[ ! -z $fatals ] || fatals=0
[ ! -z $halts ] || halts=0
[ ! -z $actions_run ] || actions_run=0
output_file="${prom_textfile_dir}/backupninja.prom"
tmp_file="${output_file}.$$"
trap "rm -f $tmp_file 2>/dev/null" EXIT INT TERM
cat <<EOF > "$tmp_file"
# HELP backupninja_warnings Number of warnings reported by Backupninja
# TYPE backupninja_warnings gauge
# HELP backupninja_errors Number of errors reported by Backupninja
# TYPE backupninja_errors gauge
# HELP backupninja_fatals Number of fatals reported by Backupninja
# TYPE backupninja_fatals gauge
# HELP backupninja_halts Number of halts reported by Backupninja
# TYPE backupninja_halts gauge
# HELP backupninja_actions Number of actions run by Backupninja
# TYPE backupninja_actions gauge
backupninja_warnings{host="$hostname"} $warnings
backupninja_errors{host="$hostname"} $errors
backupninja_fatals{host="$hostname"} $fatals
backupninja_halts{host="$hostname"} $halts
backupninja_actions{host="$hostname"} $actions_run
EOF
if [ $? -gt 0 ]; then
rm -f "$tmp_file" 2>/dev/null
error "could not write metrics to ${prom_textfile_dir}!"
let "errors +-1"
else
mv -f "$tmp_file" "$output_file"
chmod 0644 "$output_file"
fi
else
error "$prom_textfile_dir does not exist!"
let "errors +-1"
fi
fi
if [ ! -z "$reportemail" ]; then
if [ -x "$(which mail 2>/dev/null)" ]; then
debug "send report to $reportemail"
hostname=`hostname`
......@@ -643,7 +691,7 @@ if [ $doit == 1 ]; then
let "errors += 1"
fi
fi
fi
if [ $actions_run != 0 ]; then
info "FINISHED: $actions_run actions run. $fatals fatal. $errors error. $warnings warning."
if [ "$halts" != "0" ]; then
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment