ApacheTop ChangeLog

v0.7 (14th October, 2003)
20031008
 * add thread for monitoring keypresses; if pthreads can be used, this will
   make ApacheTop feel more responsive. Fall back on old behaviour if not.

20031006
 * simplify log-fetching routine; no need to lseek() around the file;
   we just wait (or kqueue) then attempt to read().

20031005
 * wrap header includes in #if/#endif; we should now build on ancient
   standards-breaking systems which don't have some headers.
 * efficiency tweaks to hashing functions and hash class
 * use the return value of ohtbl->insert where possible; saves a call to
   lookup and thus another hash in some cases, which cuts down on CPU time.


v0.6 (5th October, 2003)
20031004
 * change from select() to nanosleep() for sleeping. Not only is this a more
   suitable function, it also stops ApacheTop on Linux eating all the CPU,
   since select() was zero'ing a structure after it's first call. doh.
 * start distributing with autoconf. Disregard previous build instructions;
   you now do the more conventional cd apachetop-X.X/ && ./configure && make
 * add kqueue() support for checking the logfile for updates; autoconf
   enables this automatically if your architecture supports it.

20031003
 * drop qsort() in favour of shellsort() in display.cc; this has the
   advantage of knowing the data it's sorting, thus doesn't have to call a
   comparison sub-function millions of times. This should lower ApacheTop's
   CPU usage a lot.
 * add mod_log_spread support via a patch from Theo Schlossnagle; I haven't
   been able to test this yet.


v0.5 (2nd October, 2003)
20031002
 * make the timed circle store slightly more information than requested, so
   that we're guaranteed to have the requested number of seconds.

20031001
 * add option -r to specify refresh delay interval in seconds.
 * add runtime key 'p' to pause/unpause the updating display. Stats are
   still collected, but the screen is temporarily frozen.

20030930
 * experimental try-to-stop-it-crashing changes; a few cases of possible
   memory trashing were fixed in hash and map classes.
 * fill in dummy "Unknown" value for referrer if a common log is used.
   (fixes crash if user switches to REFERRERs when there aren't any)
 * change default refresh delay to 5 seconds.


v0.4 (29th September, 2003)
20030929
 * add a new display mode; REFERRERs.
   Press 'd' to cycle through URLs, IPs, and now REFERRERs.
 * add option -p to preserve http:// (or whatever protocol) at start of
   referrer string. By default it is cut out to save space onscreen.

20030928
 * remove -lreadline and associated code; hence dropping support for
   altering delay frequency during runtime. This improves portability,
   notably to Solaris. Intending to replace readline with own code.
 * -L changed to -l; no real reason to use uppercase, not sure why I did.

20030927
 * add -s option to keep a given number of URL path segments only. For
   example, -s 2 converts "/images/media/small/x.jpg" into "/images/media/"
   This is rather experimental, so I'd appreciate feedback.
 * remove floating points from table information when the numbers get big
   enough; so we can display bigger numbers in the same table space.
 * internally record referrers from log if they're available.
 * add a visual marker (* just to left of URL/IP), movable by Up/Dn to stats
   table; will be used to provide more information on the selected item.
   This doesn't yet do anything further, however.


v0.3 (26th September, 2003)
20030926
 * add framework for reading more logformats; combined & atop (not done yet)
 * add -L option to lowercase all URLs for display (means /FOO and /foo are
   considered the same and accumulate the same hits/bytes counters)
 * add -q option to keep querystrings on URLs (default is to remove)
 * rejigged -h and -t options to be -H and -T; logtype now uses -t

20030925
 * simplify circle functions by passing structs around, not lots of
   individual ints; cuts down on memory copying too (= faster).
 * display bytecount in header in MB when appropriate.
 * adapt to resizes of the term; display more results if we can, and use
   more of the term's width if there's an excess.

20030924
 * log.[cc|h] added; Log parsing class. Obsoletes logsplit() in apachetop.cc.
   Currently only has common logformat parser, but is easily extendable to do
   combined (and planning on a custom format)
 * don't display NaN when there's no stats; display zeroes.


v0.2 (24th September, 2003)
20030923
 * timed_circle.cc operational improvements to return more accurate
   information about what's really going on with idle-ish servers.
 * only allow one of -t and -h args to be specified.

20030922
 * timed_circle.cc fixes for potentially overrunning arrays, with the help
   of Purify on Solaris. This should fix the segmentation faults a few people
   have been randomly seeing.


v0.1 (22nd September, 2003)
20030922
 * README (some brief docs) and CHANGES added :)
 * display restructured a little; better use made of floating points

20030921
 * circle.[cc|h] moved to hits_circle.*; circle.h added as a virtual class.
   In English, this means you can choose which circle mode to use at startup
   time; one limited by time or one by hits.

20030920
 * timed_circle.cc added; provide detailed statistics for server requests in
   the last $x seconds. The alternative is circle.cc, which similarly
   remembers the last $x requests, regardless of age.


v0.0 (19th September, 2003)
20030919
 * initial freshmeat release
