[comp.mail.sendmail] errors in sendmail statistics

bruce@sonyd1.Broadcast.Sony.COM (Bruce Lilly) (09/18/90)

I've noticed two problems regarding the statistics on mailer
use/message size as stored in sendmail.st by sendmail, and
reported by mailstats. The following changes were made to
sendmail 5.64 with IDA enhancements, but I believe they apply to
vanilla 5.64 (and probably earlier versions) also.

1)	The size, reported in increments of approximately 1Kbyte,
	is excessive.  A one byte message would be reported as
	1K. A solution to this is to change the #define of
	KBYTES(x) in stats.c to:
#define KBYTES(x)	(((x) + (ONE_K / 2)) / ONE_K)
	This is not an ideal solution, but assuming message sizes
	are randomly distributed, it should be more accurate than
	the unmodified sources. (Note that in this case, small
	messages are not counted at all.)

2)	If the default delivery mode is b(ackground), the
	msgsfr count is incorrect (messages are counted twice).
	The cause is that the Stat structure (stats.c) is updated
	by a call from main() to markstats(), then written to the
	statistics file both in main() (poststats() called by
	finis()) *and* in the process forked for delivery in
	sendall() (which also calls finis()).  The solution is to
	move the call (in main() in main.c) of markstats() to
	after the call of sendall() (near the end of main()).
	Consequently, the nf element of the Stat structure is not
	set in the version written by the forked process (it is
	still written by the original process).
-- 
    Bruce Lilly, Product Manager,        | bruce@sonyd1.Broadcast.Sony.COM
    Digital Television Tape Recording,   | uunet!{sonyusa,vmp}!sonyd1!bruce
    Sony Communications Products Co.,    | lilb@sony.compuserve.com (slow)
    Teaneck, NJ 07666  |  Telephone: 1(201)833-5693   | FAX: 1(201)833-9279

vixie@wrl.dec.com (Paul Vixie) (09/20/90)

I never use the sendmail.st stuff - all my statistics come from log files.
The latest King James Sendmail can keep a log of all the headers of all
messages it collects; this combined with the normal syslog stuff is suffic-
ient for reports like this:

 Syslog    Input: (total)      (mail11)     Output Statistics:
File Date  Msgs Kbytes AvgSz  Sndrs Rcips   Sent AvgDelay Dferd Que'd Other
.0 Sep 18 11287  61721  5600   5134  6955  16520    22:50  1013  3012   557
.1 Sep 17 11044  60813  5639   4282  5676  15334    29:26   798  2887   717
.2 Sep 16  2960  30549 10568   1699  1830   3829    14:15   407   782  1392
.3 Sep 15  5531  17923  3318   1874  2149   7589    15:07   629   619   473
.4 Sep 14  1716   3745  2235    396   444   2893  1:03:23   187   145    84
[...]

I'm going to remove the sendmail.st support altogether, since I'm looking
for ways to make KJS smaller and this whole mechanism seems primative and
useless.  Anybody have strong feelings the other way?
--
Paul Vixie
DEC Western Research Lab	<vixie@wrl.dec.com>
Palo Alto, California		...!decwrl!vixie