I have my Bootchart prototype finally running.
What all do I have till now?
1. An install script.
2. A shell script that runs instead of init, runs my systemtap script and then calls init.
3. My systemtap script, of course that does the probing for me and gathers the process info and outputs it in XML format.
4. A script that calls my parser and saves the text output ( the renderer is to be built after mid-term evaluation)
5. A java parser that parses the XML output using the SAX interfaces.
The parsed text-mode output looks like:
No of Processes '1249'.
Process Details - Time1214080512744, Pid451, PPid:450, Execname:sh,Probefunc:sys_execve,Pexecname:stapio.
Process Details - Time1214080516148, Pid1, PPid:0, Execname:init,Probefunc:sys_execve,Pexecname:swapper.
Process Details - Time1214080516167, Pid454, PPid:453, Execname:init,Probefunc:sys_execve,Pexecname:init.
Process Details - Time1214080516203, Pid455, PPid:454, Execname:rc.sysinit,Probefunc:sys_execve,Pexecname:rc.sysinit.
......
Note: Processes are not unique.
Now I just need to extend this structure to include the CPU and Disk info.
Another thing I'd like to mention, mounting a temporary file system is necessary even if I log in memory and dump the output in a file at the end of probing. A 'probe end {//do the logging in file }' results in a read-only file-system error
even though you not writing to the file till the system is up.
3 comments:
You may find useful the "staprun -L" option - it loads & starts a systemtap module, but doesn't wait for it to finish. A subsequent "staprun -A", done later when the disks are mounted read-write, can pull out all the pent-up trace data.
@fche thanks :) it works
how come your "shell" script runs before your shell runs?? afaik shell scripts are run by some shell which needs init to vfork it in the first place. can you please throw some light on this??
Post a Comment