In the process of trying to make "sag" work properly with GNU graph, I've found some very unusual things that sag does, to try to hack a plot together using the limited features of "graph". (For example, labelling of data items.)
The results are fairly specific to the Tek mode (really only displayable in Xterm), and also fairly ugly. In fact, I had a very difficult time getting it to generate any useful graphs from my sar data at all. (Solaris legacy graph is really really crummy in this regard, but even GNU graph had some challenges trying to contort itself into the knots that sag was trying to tie.) It would be possible to make this work much more elegantly using gnuplot, but would require more effort, and I'm not sure this is the best use of anyone's time. (sag's user interface for setting up plots, etc. is about as badly mis-designed as anything I've run across.) I'm of the opinion that "sag", which is only useful on Solaris, really just needs to be ditched. The good news here is that there is a much better alternative available -- there is a Java product called "kSar" (which is apparently under a BSDish license). http://ksar.atomique.net/index.html This product, in addition to supporting multiple platforms, automatically graphs all sar content in a format that is quite accessible. The tool defaults to an interactive UI, but it supports scripting and can generate several useful formats (PNG, JPG, PDF, HTML, even CSV for input into a spreadsheet). Given all this, I'm inclined to EOF crummy old sag, and advocate replacing it with kSar. While not command-line drop in compatible, I think this is a far far superior replacement to our rather limited old tool set. Before I start a case to EOF sag, I'd like to know if anyone is really attached to crufty old "sag", or knows of any other reasons to object to replacing "sag" with "kSAR"? Thanks. - Garrett The following text includes information about using kSar on the command line: You can use kSar on the command line only mode * Usage: -version: show kSar version number * -help: show this help * -input <arg>: argument must be either ssh://user at host:command or cmd://command or file://path/to/file or just /path/to/file * -graph <graph list>: space separated list of graph you want to be outputed * -showCPUstacked: will make the CPU used graph as stacked * -showMEMstacked: will make the Memory graph as stacked (linux only) * -cpuFixedAxis: will graph CPU used with fixed axis from 0% to 100% * -showTrigger: will show trigger on graph (disabled by default) * -noEmptyDisk: will not export disk with no data * -tile: will tile window * -userPrefs: will use the userPrefs for outputing graphs (last export of this host) * -showOnlygraphName: will only print graph name available for that data (to be use for -graph) * -addHTML: will create an html page with PNG/JPG image * -outputPDF <pdf file> : output the pdf report to the pdf file * -outputPNG <base filename> : output the graphs to PNG file using argument as base filename * -outputJPG <base filename> : output the graphs to JPG file using argument as base filename * -outputCSV <CSV file> : output the CSV file * -width <size> : make JPG/PNG with specified width size (default: 800) * -height <size> : make JPG/PNG with specified height size (default: 600) * -startdate <date> : will graph the range begining at that time * -enddate <date> : will graph the range until that date * -solarisPagesize <pagesize in B>: will set solaris pagesize * -wizard: open with unified login popup * -replaceShortcut <xml file> : replace all shortcut with those in the xml file * * -addShortcut <xml file> : add shortcut from the xml file * * -startup: open window marked for opening at startup * AIX AixcpuSar CPU AixbufferSar Buffer AixRqueueSar Run Queue AixSqueueSar Swap Queue AixkernelSar Kernel AixttySar TTY AixmsgSar Messages & semaphore AixsyscalSar Syscalls AixcswchSar Context switching AixfileSar File AixslotSar Slot Diskname of sar + Aixxfer disk0Aixxfer for xfer graph of disk0 Diskname of sar + Aixwait disk5Aixwait for wait graph of disk5 MAC MaccupSar CPU MacpgoutSar Pageout MacpginSar Pageint Diskname of sar + -t1 disk0-t1 of xfer graph of disk0 Interfacename of sar + -if1 eth0-if1 for xfer graph of eth0 Interfacename of sar + -if2 stf0-if2 for error graph of sft0 SOLARIS SolariscpuSar CPU SolarisRqueueSar Run Queue SolarisSqueueSar Swap Queue SolarisbufferSar Buffer SolarisswapingSar Swapping SolarissyscalSar SysCall SolarisfileSar File SolaristtySar TTY SolarismsgSar Message and semaphore SolarispagingSar2 Page in SolarispagingSar1 Page out SolarismemSar Memory/swap SolariskmasmlSar Kernel small page SolariskmalgSar Kernel large page SolariskmaovzSar Kernel oversize page Diskname of sar + Solarisxfer eg.: fd0Solarisxfer for xfer graph of fd0 Diskname of sar + Solariswait eg.: ohci1,ctSolariswait for wait graph of ohci1,ct LINUX LinuxcpuSar CPU LinuxprocSar Process LinuxcswchSar Context switching LinuxintrSar Interrupts LinuxswapSar Swap LinuxioSar IO LinuxloadSar Load Average LinuxpageSar Page LinuxsockSar Socket LinuxkbmemSar Kernel Memory LinuxkbswpSar Kernel Swap LinuxkbmiscSar Kernel Misc LinuxpgpSar Paging LinuxnfsSar NFS LinuxnfsdSar NFSD Diskname of sar + -t1 dev8-0-t1 for xfer graph of dev8-0 Diskname of sar + -t2 dev9-t2 for wait graph of dev9 Interfacename of sar + -if1 eth0-if1 for xfer graph of eth0 Interfacename of sar + -if2 tun1-if2 for error graph of tun1