Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > by-pkgid > e07ed23d1daabda3ef0022f5c6e1c38b > files > 7

dstat-0.6.9-1mdv2009.1.noarch.rpm

### Disclaimer
This is my TODO list. If you're interested in one of these features, there
are 2 options. Either wait for someone to implement it or sponsor someone
to implement it.

If you want to implement something, please contact me first so that we can
discuss acceptable implementations. In some cases I haven't thought about
it too deeply, but for others I know exactly what I require.

If you have other nice ideas that you think would be an improvement, please
contact me as well. :) Send an email to: Dag Wieers <dag@wieers.com>

### Usability
+ Add --config option and use /etc/dstat.conf and ~/.dstat to influence output (see example dstat.conf)
+ Allow to force to given magnitude (--unit=kilo)
+ Look at possibilities to show deviation (on second line ?)
+ Check for dark/light background color and change colors accordingly (see dstat.conf)
+ Show parts of counters in other colors (eg. color the 6 in 6134B in yellow to indicate it's kilobyte)
+ Look into adding sched_setscheduler() calls for improved priority

### Export/Graph
+ Interface with rrdtool (python-rrd ?)
+ Allow for different types of export modules (only CSV now)
+ Allow to write out to syslog (or remote syslog)
+ Allow to write unbuffered to disk
+ Write out user input to CSV

### Plugin improvements
+ Don't calculate counters twice when a plugin is loaded twice

### Extending statistics (help welcome!)
+ Add slab plugin (see /proc/slabinfo and slabtop)
+ Add xorg plugin (xdpyinfo, xrestop)
+ Add icmp and ntp plugin ?
+ Add application plugin (-a or -A pid,cmd)
+ Add user plugin (number of users logged on, utmp is not that useful, /proc/key-users)
+ Look into interfacing with apps (bind, sendmail, postfix, squid, amavisd, laus, samba)
+ Look into interfacing with specific HW counters in /proc
+ Look at /proc/meminfo, /proc/mdstat, /proc/net/netstat, /proc/net/snmp, /proc/vmstat
+ Look at /proc/fs/cifs/stats
+ Add i2c plugin (see /sys/class/i2c-adapter/i2c-*/*/*/*/*/*)
+ Allow for SNMP counters to be added
+ Add LVM stats
+ Add 'most expensive io app' based on /proc/pid/io (topio_ops)
+ Add 'most expensive X app' (look at xrestop)
+ Add number of (active) X sessions and X clients
+ Allow to have multiple '1st expensive ... app' and '2nd expensive ... app'
+ Add 'most iowaiting app' plugin

### Documentation (help welcome!)
+ Create document on general system performance tuning
  (explaining the different values in /proc, especially the concerning ones)
+ Create document on general system performance tools
  (explaining the different uses of tools like dstat, iostat, pmap, strace, tcpdump)
+ Comply to PEP8: http://www.python.org/dev/peps/pep-0008/

### General issues
+ Implement better (?) protection against counter rollovers (see mail from Sebastien Prud'homme)
+ Plugins currently have to be written in python 1.5 to work for dstat15 (lowest common denominator)

### Plugin issues
+ plugins that use /proc/pid are reasonably slow
+ disk plugin: /proc/partitions can have negative numbers, seen on systems with long uptime. dstat handles this except for calculating the very first stat, no work-around possible?
+ proc plugin: (run and blk) does not work on 2.4.24+, to be confirmed
+ swap plugin: (new one) is slower than swapold
+ tcp plugin: is very slow and generates lots of softirqs (on busy systems), to be confirmed

### Redesign (v2.0)
+ Create modules that can contain samples of different units

   CPU: (see mpstat)
    sys, usr, idl, iow, hiq, siq (percentage)
        intr/sec (int)

   IO: (see iostat -x)
    tps (int)
    blk_read/sec, blk_wrtn/sec (kB/sec)

+ Design proper object model and namespace for _all_ possible stats
+ Create a seperate curses-based tool, much like nmon (dstat stays line-based)
+ Create client/server monitoring tool