HOME


sh-3ll 1.0
DIR:/usr/local/qmailanalog/bin/
Upload File :
Current File : //usr/local/qmailanalog/bin/zoverall
#!/bin/sh
# WARNING: This file was auto-generated. Do not edit!
echo 'Basic statistics

qtime is the time spent by a message in the queue.

ddelay is the latency for a successful delivery to one recipient---the
end of successful delivery, minus the time when the message was queued.

xdelay is the latency for a delivery attempt---the time when the attempt
finished, minus the time when it started. The average concurrency is the
total xdelay for all deliveries divided by the time span; this is a good
measure of how busy the mailer is.
'

awk '
  BEGIN {
    messages = 0
    recips = 0
    tries = 0
    deliveries = 0
    succ = 0
    fail = 0
    mbytes = 0
    rbytes = 0
  }
  /^m/ {
    ++messages
    mbytes += $4
    rbytes += $4 * $5
    qtime += $3 - $2
    recips += $5 + $6
    tries += $5 + $6 + $7
    if (!seen || ($2 < first)) first = $2
    if (!seen || ($3 > last)) last = $3
    seen = 1
  }
  /^d k/ { ++succ; ddelay += $5 - $3 }
  /^d d/ { ++fail }
  /^d/ {
    ++deliveries
    xdelay += $5 - $4
    if (!seen || ($3 < first)) first = $3
    if (!seen || ($5 > last)) last = $5
    seen = 1
  }
  END {
    print "Completed messages:", messages
    if (messages) {
      print "Recipients for completed messages:", recips
      print "Total delivery attempts for completed messages:", tries
      print "Average delivery attempts per completed message:", tries / messages
      print "Bytes in completed messages:", mbytes
      print "Bytes weighted by success:", rbytes
      print "Average message qtime (s):", qtime / messages
    }
    print ""
    print "Total delivery attempts:", deliveries
    if (deliveries) {
      print "  success:", succ
      print "  failure:", fail
      print "  deferral:", deliveries - succ - fail
      str = sprintf("%.6f",ddelay)
      print "Total ddelay (s):", str
      if (succ) {
	str = sprintf("%.6f",ddelay / succ)
        print "Average ddelay per success (s):", str
      }
      str = sprintf("%.6f",xdelay)
      print "Total xdelay (s):", str
      str = sprintf("%.6f",xdelay / deliveries)
      print "Average xdelay per delivery attempt (s):", str
      if (last > first) {
        print "Time span (days):", (last - first) / 86400
        print "Average concurrency:", xdelay / (last - first)
      }
    }
  }
'