* 1.3.0
- add support for terminals with only 16 colors by @leahneukirchen in #43
- Correctly report disk stats for NVME drives by @scottchiefbaker in #49
- Capture VM name for top-cpu by @scottchiefbaker in #48
- Properly capitalize unit letters for real this time by @Low-power in #34
- Add a \n to output when using a count
- Fix the NTP plugin for Python 3.x
- Massive internal naming change dstat -> dool
- Fix bits/bytes in CSV file output
- Add a --devel logging option to assist in future developementg
- Update Github templates to simplify them and reflect the Dool name
- Lots of comments in the code as I slowly learn more about how it works

* 1.2.0
- Remove a bunch of old Kernel 2.4 functions we dont use anymore

* 1.1.0
- Use unicode box drawing characters to make things look more modern
- Add installation script
- Make the output cleaner by using better ANSI line clearing options
- Better compatibility on older versions of Python. Tested on Python 3.6
- Memory calculation is now closer to free
- Include "available" memory instead of "buffers"
- Major README updates to help new users get started

* 1.0.0
- Initial modern release

* 0.8.0 - To be released
- Added Python 3 support

* 0.7.3 - Like a Phoenix from the ashes - release 2016-03-17
- Provide kernel configuration options to error mesages where possible
- Added external dstat_md_dstat plugin to show the resync progress of SWRAID (Bert de Bruijn)
- Changed color of 100% to white to make it stand out (Bert de Bruijn)
- Added new --bits option to force bit-values on screen (Scott Baker)
- Fix to allow internal plugins to use underscores/dashes too
- Improve internal dstat_vm plugin to use globs for matching/adding counters
- Added internal dstat_vm_adv plugin to show advanced VM counters (Pallai Roland)
- Added internal dstat_zones plugin to show zoneinfo counters (Pallai Roland)
- Fix warning message when colors are disabled because TERM is not found (Ulp 660181)
- Fix typo in dstat_nfs3_ops and dstat_nfsd3_ops (Chris Larsson)
- Added external dstat_mem_adv plugin so show advanced memory counters (Damon Snyder)
- Allow more variables (self.vars) than nicknames (self.nick) to simplify plugins
- Using -f/--full does not impact -c/--cpu anymore, most systems ship with 2 or more CPUs
- Added counter 'parent' when printing CSV subtitles of list-counters (Michael Boutillier)
- Print decimal values as decimals where possible (so 0 instead of 0.0)
- Added external dstat_ddwrt_* plugins using DD-WRT counters using SNMP infrastructure
- Fixed improper process names using spaces instead of \0 (Edward Smith)
- Added --cpu-use plugin with onlu CPU usage per CPU (Christian Neukirchen)

* 0.7.2 - Real soon now - release 2010-06-15
- Added external dstat_disk_tps plugin to show transactions per second
- Added support for filtering /dev/vdaX devices (KVM virtio)
- Added external dstat_squid plugin to show squid counters (Jason Friedland)
- Introduced blockdevices() to list available blockdevices
- Added support for CCISS block devices (named cciss/c0d0)
- Introduced cmd_test() to verify command and options
- Introduced cmd_readlines() to read from command output
- Introduced cmd_splitlines() to split lines read from command output
- Implement best effort /proc integer overflow handling in dstat_net (Ross Brattain)
- Added external dstat_dstat_cpu plugin to show dstat's cpu usage
- Added external dstat_dstat_ctxt plugin to show dstat's context switches
- Added external dstat_dstat_mem plugin to show dstat's memory usage
- Added external dstat_top_bio_adv plugin to show advanced top I/O usage
- Added external dstat_top_cpu_adv plugin to show advanced top cpu usage
- Added external dstat_top_io_adv plugin to show advanced top block I/O usage
- Allow specifying separator for splitline() and splitlines() functions
- Make top-plugins free memory for processes that no longer exist
- Added external dstat_top_int plugin to show most frequent interrupt by name
- Fixed python 2.6 string exception issue (Dbt 585219)
- Documentation improvements

* 0.7.1 - Just the three of us - release 2010-02-22
- Fix external plugins on python 2.2 and older (eg. RHEL3)
- Documentation improvements
- Implement linecache for top-plugins (caching for statistics)
- Added external dstat_qmail plugin to show the length of qmail queues (Tom Van Looy)
- Added external dstat_dstat plugin to show Dstat's own cputime and latency values
- Added --profile option to get profiling statistics when you exit dstat
- Show a message with the default options when no stats are being specified
- Improved page allocation numbers in vm plugin (Hirofumi Ogawa)
- Introduced proc_readline() and proc_spitline() using linecache for top-plugins
- Introduced proc_readlines() and proc_splitlines() using linecache for top-plugins
- Introduced proc_pidlist() for top-plugins
- New tchg() function to format the time depending on width

* 0.7.0 - Tokyo - release 2009-11-25
- Fixed dstat_disk plugin for total calculation on 2.6.25+ kernels (Noel J. Bergman)
- Precompile regular expressions used as a disk filter (self.diskfilter)
- Raise a warning when discovery returns empty
- Improvements to dstat_battery and dstat_cpufreq
- Added external dstat_power plugin to show ACPI power usage
- Simplified logic inside dstat_time
- Added external dstat_ntp plugin to show time from an NTP server
- Flush sys.stdout later in the loop
- Filtering out more interfaces (eg. bonding) in total values (Bert de Bruijn)
- Provide error output when now power information is available (AC power)
- Make topcpu plugin SMP aware (values are not percent per CPU)
- Drop support for Python 1.5 (and removed dstat15 version)
- Introduced splitlines() function that allows a replace/split on readlines()
- Added external dstat_fan plugin to show fan speed
- Added theming support (not exposed to users yet)
- Added --bw/--blackonwhite option to use dark colors on white background
- Allow any plugin to be added by using long options (ie. --topbio)
- Added external dstat_memcache_hits plugin to show memcache hits and misses (Dean Wilson)
- Various changes to simplify plugin interface and performance improvements
- Added external dstat_proccount plugin to show total number of process (Dean Wilson)
- Added external dstat_vzio plugin to show I/O account number per OpenVZ container
- Added external dstat_battery_remain plugin to show how much battery time is remaining
- Added getnamebypid() function to simplify finding best process name by process id
- Added external dstat_toplatency plugin to show process with top wait time in milliseconds
- Added external dstat_toplatency_avg plugin to show process with top average wait time in milliseconds
- Added external dstat_topcputime plugin to show process with top total cpu in milliseconds
- Added external dstat_topcputime_avg plugin to show process with top average timeslice in milliseconds
- Improvements to timing when writing to screen so that it feels nicer
- Added external dstat_disk_util to show per disk utilization rates in percentage
- Added new --float option to force float values on screen
- Reduce the number of paths used for importing modules (CVE-2009-3894)
- Mass rename plugins to follow better convention (impacts existing options)
- This release was 'sponsored' by the Linux Foundation during the Japan Linux Symposium

* 0.6.9 - Locarno - release 2008-12-02
- Input text color is now gray (again)
- Added external dstat_lustre plugin (Brock Palen, Kilian Vavalotti)
- Validate integer values in /proc/swaps (Bert de Bruijn)
- Added VMware guest dstat_vmmemctl plugin (Bert de Bruijn)
- Added internal dstat_fs plugin showing number of open files/inodes
- Added internal dstat_socket plugin to show total number of various sockets
- Added internal dstat_aio plugin to see number of asynchronous I/O requests
- Listing modules (-M list) now also lists internal plugins
- Added internal dstat_vm plugin showing page faults, allocations and frees
- Added internal dstat_io plugin showing number of completed I/O requests

* 0.6.8 - Buenos Aires - release 2008-09-12
- Added improved tick patch (Kelly Long)
- Show milliseconds in dstat_time when using --debug cfr. dstat_epoch
- Difference in integer rounding should not affect colouring
- Fixed the IOError when terminal is suspended and IO is unbuffered (Dbt 309953)
- Scheduler accuracy improvements by using sched instead of signal
- Added external dstat_snooze plugin (Kelly Long)
- Improved dstat_time to accept format string from DSTAT_TIMEFMT (Kelly Long)
- Added --pidfile option to write out a pidfile (Kelly Long)
- dstat_epoch and dstat_time now display starttime, not execution time of plugin
- Fix division by zero problem
- Warn when loosing ticks (buffering problems or vmware time sync errors)
- Fixed permissions of plugins (Andrew Pollock)
- Fixed exception when specifying -I eth0 (Radek Brich)
- dstat_int plugin now allows -I total (Radek Brich)
- Fixed typo in dstat_topio and dstat_topbio when using CSV output (Bharvani Toshaan)
- Added external dstat_net_packets plugin to show the number of packets per interface
- Default to 25/80 when terminal height/width is set to zero, eg. XEmacs shell (Jeff Mincy)
- Removed complex process name since /proc/pid/cmdline behaves different on new kernels (Adrian Alves)

* 0.6.7 - Cambridge overdue - released 2008-02-26
- Only rewrite xterm title when XTERM_SHELL is set to bash
- Added more Dbt (Debian bug tracker) ids in the ChangeLog and TODO
- Use sys.exit() instead of exit() before color support is detected
- Renamed external dstat_app plugin to dstat_topcpu
- Added external dstat_topmem plugin
- Improved dstat_topcpu CSV output
- Fixed a problem with asciidoc DocBook output (Dbt 427214, Michael Ablassmeier)
- Report when python-curses is missing and colors don't work (eg. on OpenSUSE)
- Improve --version output wrt. terminal and color support
- Fixed a few inaccuracies in the man page (John Goggan)
- Fixed opening vanished files in /proc in dstat_topcpu
- Fixed formatting bug in dstat_topcpu
- Added external dstat_mysql_* and dstat_innodb_* plugins
- Added greppipe() and matchpipe() to improve performance on pipe-handling
- Added external dstat_topio and dstat_topbio plugins
- Added external dstat_topoom plugin to show top out-of-memory score
- Added external dstat_mysql5_* plugins (Frederic Descamps)
- Reinstated the use of -D md0 which got lost (Peter Rabbitson)
- Improvement to cpufreq module for SMP systems (Bert de Bruijn)
- Added VMware ESX dstat_vmknic plugin (Bert de Bruijn)
- Added infrastructure to allow C plugins

* 0.6.6 - Unemployed - released 2007-04-28
- Removed SwapCached from the Cached counter (Dbt 418326, Peter Rabbitson)
- Fixed a file descriptor problem on kernel 2.4 (Liviu Daia)
- Install manpage as part of the make install phase (Scott Baker)
- Use SIG_IGN instead of SIG_DFL to disable alarm signal
- Improved dev() for kernel 2.4 device names (Dbt 377199, Filippo Giunchedi)
- If stdout is not a TTY, don't limit the line length (Jason)

* 0.6.5 - Torrox - released 2007-04-17
- Added VMware ESX plugins (Bert de Bruijn)
- Added tcp6 and udp6 statistics within dstat_tcp and dstat_udp
- Added module readlines() taking care of seek() and multiple files
- Improved module exception messages
- Fixed a problem with strings and CSV output in dstat_time and dstat_app (Vinod Kutty)
- Removed broken dstat_clock plugin (use dstat_time or dstat_epoch)
- Disabled the generic exception handling of OSError and IOError to force a stacktrace (supastuff@freenode)

* 0.6.4 - Ahoy - released 2006-12-12
- Fixed dstat_clock to use localtime() instead of gmtime()
- Added external plugin dstat_vz for openvz cpu statistics
- Removed the underscoring of the counter titles
- Added underlining for the counter titles
- Do not return md and dm devices during disk discovery
- Renamed dstat_time plugin to dstat_epoch (-T/--epoch)
- Moved dstat_clock plugin into main dstat program as dstat_time (-t/--time)

* 0.6.3 - Amsterdam - released 2006-06-26
- Changed default (silver) color of delimiter to gray
- Fixed sum() and enumerate() only when it isn't there (Jesse Young)
- Added external plugins dstat_app
- Added ibm-acpi support to dstat_thermal
- Exclude md-devices from total
- Improved debug output somewhat
- Fixed a battery plugin bug (Christophe Vandeplas)
- Added individual swap monitoring (-s with -S)
- Small performance improvements
- Raise module exceptions when --debug is invoked
- Removed the memory-leaking curses implementation (Dbt 336380, supastuff@freenode)
- Added dist, rpm and srpm targets to Makefile
- Moved documentation to asciidoc at last

* 0.6.2 - Cumbernauld - released 2006-03-08
- Fixed situation where no TERM environment variable was set (William Webber)
- Print out terminal debug info (TERM env and terminal type)
- Added SwapCached value to Cached (Bert de Bruijn)
- Added external plugin dstat_clock, a human-readable alternative for dstat_time
- Fixed problem with Broken pipe when doing eg. dstat | head -1 (Eike Herzbach)

* 0.6.1 - Fishkill - released 2005-09-05
- Look for plugins in ~/.dstat/ too
- Added '-M list' to show the list of available modules per path
- Fixed a bug in dpopen causing gpfs/gpfsop to fail after a while
- Change terminal title (if terminal supports it)
- Don't trim the cpulist to 2 items when -f (Sébastien Prud'homme)
- Exclude md-devices from total (Dbt 318950, Peter Cordes)
- Now accept 'total' keyword with -C (like -D and -N)
- Rewrote the path-inserting code
- Added asciidoc based manual page
- Added external plugin dstat_rpc
- Added external plugin dstat_rpcd
- Added external plugin dstat_nfs3
- Added external plugin dstat_nfs3op
- Added external plugin dstat_nfsd3
- Added external plugin dstat_nfsd3op
- Improvements to plugin error handling

* 0.6.0 - Bettiesbaai - released 2005-05-29
- Removed keyboard input prevention patch. (Dbt 304673, Marc Lehmann)
- Fixed bug with: dstat -tit -I 177
- Added ipc stats (--ipc)
- Added lock stats (--lock)
- Added raw stats (--raw)
- Added unix stats (--unix)
- Improved udp stats
- Reimplemented -I eth0,ide1 (Bert de Bruijn)
- Smarter /proc handling, seek(0) instead of re-open()
- Implemented dopen() as a wrapper hash for file descriptors
- Small speedup improvements after profiling
- Improvement in handling compatible stats (eg. disk, disk24, disk24old)
- Added initial values (step=0) for disk, int, page, and sys stats
- Allowed external tools to use the dstat classes
- Added example scripts using the dstat classes (mstat.py and read.py)
- Allowed to interface with external plugins
- Added external acpi plugin dstat_battery
- Added external acpi plugin dstat_cpufreq
- Added external acpi plugin dstat_thermal
- Added external app plugin dstat_postfix
- Added external app plugin dstat_sendmail
- Added external app plugin dstat_gpfs
- Added external app plugin dstat_gpfsop
- Added external plugin dstat_dbus
- Added external plugin dstat_freespace
- Added external plugin dstat_utmp
- Added external plugin dstat_wifi
- Removed user stat (now in external dstat_utmp plugin)
- Smaller fixes and overall improvements
- Improved help output and manpage
- Added README.examples, README.performance and README.plugins
- Added profiling/debuging code (--debug)
- Rewrote cprint/cprintlist logic
- Get rid of python-curses requirement for SLES9 (although it helps to have it)
- Fixed dstat_disk24old for newer 2.4 kernels without CONFIG_BLK_STATS (Susan G. Kleinmann)
- Improved dstat_disk24 for newer 2.4 kernels with CONFIG_BLK_STATS (Susan G. Kleinmann)
- Allow for specifying compatible stats on command line (eg. -M disk24,disk24old,page24)
- Make time stat more detailed when --debug is used.
- Implemented infrastructure to pipe to commands
- Started collecting different proc-files for debugging
- Disable headers if less than 6 lines in terminal

* 0.5.10 - released 2005-04-08
- Small fix to restore terminal for all exit paths (Dbt 303526, Modesto Alexandre)
- Get rid of duplicate 'screen width too small' error message in dstat15

* 0.5.9 - released 2005-03-28
- Make default list total lists (cpu, disk, net)
- Fix clearline ANSI to work on older (Debian?) rxvt (Joshua Rodman)
- Improved color/vt100 terminal capabilities logic (Dbt 300288, Charles Lepple)
- Finally use curses for some of the terminal capabilities logic
- Improvement to non-tty handling for intermediate updates
- Small fix to handle the edge of the counters better
- Prevent keyboard input/echo when running

* 0.5.8 - released 2005-03-15
- Added user stats (-u), using python-utmp
- Bail out if all requested stats fail
- Replaced --noheader option by --noheaders option (like vmstat)
- Added -V as short for --version
- Improved help output
- Allow CSV output and human output concurrently
- Removed --csv option (now use --output option)
- Added gnome to known ANSI capable terminal emulation
- Replaced save and restore ANSI to save and restore VT100 (Olav Vitters)
- Backported dstat to python 1.5 again

* 0.5.7 - released 2004-12-31
- Change Makefile to not install when run without target (Kurt Roeckx)
- Fixed another crash caused by /proc instability
- Added --csv option to output Comma-Seperated-Value output
- If output is not a tty, don't care about line-width

* 0.5.6 - released 2004-12-20
- Made sys and int stats unit-aware (so 10000 int/sec -> 10.0k) (Anton Blanchard)
- Improve conv() function and stat show() functions
- Improved the calculation of the cpu usage
- cpu stats will now show hardirq and softirq by default if possible (Anton Blanchard)
- Color cpu, proc, tcp and udp stats too
- Don't clear the line after restoring the cursor at the start (disable flickering)
- Better formatting for load and proc stats
- cpu stats are not longer snapshots but average over delay
- Fix for diskless systems (Werner Augustin)
- Gracefully handle incorrect arguments
- Important changes to header-model
- Added smp support (Bert de Bruijn)
- proc stats now show averages
- Check if output is a tty, else disable colors and updates
- Fixed bug in interrupt stats on smp systems (Bert de Bruijn)
- Improved interrupt stats (Bert de Bruijn)
- Improvement in output, 10.0k or 5.0 will be displayed simply as 10k or 5
- proc stats now show floats

* 0.5.5 - released 2004-02-12
- In fact, round() was not the problem, use str() instead. (Anton Blanchard)
- Abandoned the use of round() as it is limited to integers (Juergen Kreileder)

* 0.5.4 - released 2004-10-25
- Added a python 1.5 version of dstat (Ville Herva)
- Fixed a problem with count
- Improved the logic for displaying repetitive headers
- Now --nocolor implies --noupdate (since it implies no ANSI escape sequences)
- Removed the 'Exiting on user request' message

* 0.5.3 - released 2004-10-21
- Added -M or --mods option to allow modules
- Added --full option to expand the -D, -I and -N discovery lists
- Re-added the number of new processes (the --vmstat will no longer resemble vmstat)
- More intelligent way of ordering stats to fit as much in screen width as possible
- Fixed a crash when counters overflow (Francois Postaire)
- Added manpage, kindly donated by Andrew Pollock
- Added --tcp and --udp stats (may be improved later ?)
- Fixes to disk24old and new cpu24 (for Debian 2.4.26 kernel)
- Signal handling cleanup
- Partitions are excluded from discovery on 2.4 kernels

* 0.5.2 - released 2004-10-13
- Improved disk and net discovery functions (Ville Herva)
- Fixed a bug with values when using --noupdate (Pasi Pirhonen)
- Documented the internals a bit more, hoping people will contribute
- Implemented a fix for when the output exceeds terminal columns

* 0.5.1 - released 2004-10-11
- Fixed bug that caused counters to not be averages when delay > 1
- Added time stats (-t)

* 0.5 - released 2004-10-11
- Changed some more int()'s into long()'s (Pasi Pirhonen)
- Fixed the cpu out of index, /proc instability (Pasi Pirhonen)
- Improved the rounding function
- Added --integer, to get earlier 'integer value' behaviour
- Added --noheader option to only see header at start
- Unbuffered sys.stdout and added ANSI colors
- Added --nocolor to disable newly introduced colors
- Added --noupdate to disable intermediate updates when delay > 1
- When counters roll over, show dash
- Fixed 2 crash bugs caused by /proc instability

* 0.4 - released 2004-10-26
- Added interrupt stats (-i)
- Order of the stats adhere the order of the options
- Interval more precise, using signals instead of sleep
- Modular rewrite using classes
- Added -D, -I and -N options to customize list
- Allow to specify 'total' for -D and -N to get aggregated numbers
- Added --vmstat option, vmstat alike output
- Implemented a basic network, interrupt and disk 'discovery' function
- Replaced hardcoded 4096 by resource.getpagesize()
- Added enumerate() for python < 2.3, and rewrote/removed it again
- Check for support of proc filesystem and entries
- Fixes for kernel 2.4 support (disk and paging)
- Count number of CPUs (for kernel 2.4 disk support)
- Titles are now truncated to max-1
- Show header when it disappears from screen
- Allow to specify interrupt by device eg. -I eth0,acpi or -I ide0,yenta
- Fix disk stats bug related to RHEL3 U3 iostat bug on 2.4 (RHbz 137595, Charlie Bennett)
- Uncommented old 2.4 disk stats functionality (see source for enabling it)
- Initial public release

* 0.3
- Added load stats (-l)
- Added memory stats (-m)
- Output now fits into space and adds unit
- Converted all values to bytes

* 0.2
- Added disk io stats (-d)
- Added proc stats (-p)
- Important layout changes

* 0.1
- Initial release
