diff options
Diffstat (limited to 'usr.sbin/xntpd/scripts/stats/loop.awk')
-rw-r--r-- | usr.sbin/xntpd/scripts/stats/loop.awk | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/usr.sbin/xntpd/scripts/stats/loop.awk b/usr.sbin/xntpd/scripts/stats/loop.awk new file mode 100644 index 0000000..25d0bdb --- /dev/null +++ b/usr.sbin/xntpd/scripts/stats/loop.awk @@ -0,0 +1,49 @@ +# awk program to scan loopstats files and report errors/statistics +# +# usage: awk -f loop.awk loopstats +# +# format of loopstats record +# MJD sec time (s) freq (ppm) tc +# 49235 3.943 0.000016 22.4716 0 +# +BEGIN { + loop_tmax = loop_fmax = -1e9 + loop_tmin = loop_fmin = 1e9 +} +# +# scan all records in file +# +{ + if (NF >= 5) { + loop_count++ + if ($3 > loop_tmax) + loop_tmax = $3 + if ($3 < loop_tmin) + loop_tmin = $3 + if ($4 > loop_fmax) + loop_fmax = $4 + if ($4 < loop_fmin) + loop_fmin = $4 + loop_time += $3 + loop_time_rms += $3 * $3 + loop_freq += $4 + loop_freq_rms += $4 * $4 + } +} END { + if (loop_count > 0) { + loop_time /= loop_count + loop_time_rms = sqrt(loop_time_rms / loop_count - loop_time * loop_time) + loop_freq /= loop_count + loop_freq_rms = sqrt(loop_freq_rms / loop_count - loop_freq * loop_freq) + loop_tmax = loop_tmax - loop_time + loop_tmin = loop_time - loop_tmin + if (loop_tmin > loop_tmax) + loop_tmax = loop_tmin + loop_fmax = loop_fmax - loop_freq + loop_fmin = loop_time - loop_fmin + if (loop_fmin > loop_fmax) + loop_fmax = loop_fmin + printf "loop %d, %.0f+/-%.1f, rms %.1f, freq %.2f+/-%0.3f, rms %.3f\n", loop_count, loop_time * 1e6, loop_tmax * 1e6, loop_time_rms * 1e6, loop_freq, loop_fmax, loop_freq_rms + } +} + |