A couple of questions:
- do you want to generate plots in real-time?
- how often do you want to sample?
A previous comments mentioned 5 minute samples and I have to say if you really want to know what your CPU is doing with any confidence you should really be down in the 10 second range. Averaging things out at 5 minutes will just cause you to miss spikes that could be minutes long! Admittedly 10 second samples could miss 5 second spikes, but you have to figure out what you're trying to see in the data.
Personally I use collectl, probably because I wrote it! ;-)
But it runs very efficiently at low sampling rates (even sub-second) and can even report its output in a format suitable for plotting. In fact if you install collectl-utils and write to a shared directory, you can use colplot to see the data in real time.
One last comment about RRDTool. It's a great package and draws very nice plots, but you do need know if you log a lot of samples for a single day the resultant plots are not accurate. This is because RRDTool normalizes multiple samples into single data points to make the graphs simpler, something colplot never does. It uses gnuplot to make sure every data point that is captured is faithfully plotted.