summaryrefslogtreecommitdiffstats
path: root/usr.sbin/xntpd/scripts/stats/loop.awk
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/xntpd/scripts/stats/loop.awk')
-rw-r--r--usr.sbin/xntpd/scripts/stats/loop.awk49
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
+ }
+}
+
OpenPOWER on IntegriCloud