Well...after burying my head in the perl cookbook and rrdtool manual for the last few days I've got something to show for it

grab
http://www.witewulf.ath.cx/e-smith-monitor/monitorand
http://www.witewulf.ath.cx/e-smith-monitor/sysmonitorthen do 'service sysmonitor stop' and copy them to
/etc/e-smith/web/functions/
and
/usr/sbin/
respectively, followed by 'service sysmonitor start' and you should shortly find yourself with a CPU graph looking similar to the network ones, except the blue line is for CPU0 and the red line for CPU1.
The mods are by no means elegant, the worst being a nasty hack to get the idle values off the individual processors using top and a regexp:-
{
$_ = top b n 2 d 5 | grep CPU[0,1];
($getidle0) = /CPU0.*\n.*\nCPU0.*nice,\s+(\d+)/;
($getidle1) = /CPU1.*\n.*\nCPU1.*nice,\s+(\d+)/;
$res0 = 100-$getidle0;
$res1 = 100-$getidle1;
/usr/bin/rrdtool update /var/lib/rrd/usedcpusmp.rrd N:$res0:$res1;
exit ;
}
I'm running top for two iterations as it incurs an 8% or so processor load when it itself actually loads, so the two iterations, 5 seconds apart, should let things settle down, we only record the second set of values. For my mind, top puts an unacceptable load on the system for use as a monitoring tool, especially as it's being run once every minute. If anyone knows of another method of finding the idle values for individual CPUs please let me know!
Be aware that this mod will only work if your bios/mobo numbers your CPUs 0 and 1. From reading the linux SMP FAQ I believe some mobos use weird numbering schemes for their CPUs.
Also note that this will only work on dual SMP boxen, *not* uni-processor systems, next step is to try and modify it further to autodetect the number of CPUs (both uni and/or SMP) present in a system and draw the graphs with respect to that number.
Please let me know what you think, if you have any suggestions and if it works for you!
Gary