diff --git a/plugins/chrony/chrony_drift b/plugins/chrony/chrony_drift new file mode 100755 index 00000000..26327d62 --- /dev/null +++ b/plugins/chrony/chrony_drift @@ -0,0 +1,88 @@ +#! /bin/sh +# -*- sh -*- + +: <<=cut + +=head1 NAME + +chrony_drift - Munin plugin to monitor the Chrony drift value. + +=head1 APPLICABLE SYSTEMS + +Any chronyd host. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin: + + [chrony_drift] + env.driftfile - Path to driftfile. + +=head2 DEFAULT CONFIGURATION + + [chrony_drift] + env.driftfile "/var/lib/chrony/chrony.drift" + +=head1 USAGE + +Link this plugin to /etc/munin/plugins/ and restart the munin-node. + +=head1 AUTHOR + +HORINOUCHI Masato 2019-07-16 + +=head1 LICENSE + +Same as munin. + +=head1 MAGIC MARKERS + +#%# family=auto +#%# capabilities=autoconf + +=cut + +driftfile=${driftfile:-'/var/lib/chrony/chrony.drift'} + +do_autoconf () { + if [ -r "$driftfile" ]; then + echo "yes" + else + echo "no (could not read driftfile '$driftfile'.)" + fi +} + + +do_config () { + cat <<'EOM' +graph_title Chrony Drift +graph_args --base 1000 +graph_vlabel Parts Per Million +graph_category time +drift.label System Clock Gain/Loss Rate +error_bound.label Estimate of Error Bound +graph_info The rate at which the system clock gains or loses time relative to real time. +EOM +} + + +do_ () { + if [ -r "$driftfile" ]; then + echo "drift.value $(awk '{print $1;}' "$driftfile")" + echo "error_bound.value $(awk '{print $2;}' "$driftfile")" + else + echo "drift.value U" + echo "error_bound.value U" + fi +} + + +case $1 in + autoconf|config|'') + do_"$1" + ;; + *) + echo "Don't know how to do that" >&2 + exit 1 + ;; +esac