Is there a utility to visualise / isolate and watch application calls
- by MyStream
Note: I'm not sure what to search for so guidance on that may be just as valuable as an answer.
I'm looking for a way to visually compare activity of two applications (in this case a webserver with php communicating with the system or mysql or network devices, etc) such that I can compare the performance at a glance.
I know there are tools to generate data dumps from benchmarks for apache and some available for php for tracing that you can dump and analyse but what I'm looking for is something that can report performance metrics visually from data on calls (what called what, how long did it take, how much memory did it consume, how can that be represented visually in a call stack) and present it graphically as if it were a topology or layered visual with different elements of system calls occupying different layers.
A typical visual may consist of (e.g. using swim diagrams as just one analogy):
Network (details here relevant to network diagnostics)
| ^ back out
v |
Linux (details here related to firewall/routing diagnostics) ^ back to network
| |
V ^ back to system
Apache (details here related to web request) |
| ^ response to
V | apache
PHP (etc) PHP---------->other accesses to php files/resources-----
| ^
v |
MySQL (total time) MySQL
| ^
V |
Each call listed + time + tables hit/record returned
My aim would be to be able to 'inspect' a request/range of requests over a period of time to see what constituted the activity at that point in time and trace it from beginning to end as a diagnostic tool.
Is there any such work in this direction?
I realise it would be intensive on the server, but the intention is to benchmark and analyse processes against each other for both educational and professional reasons and a visual aid is a great eye-opener compared to raw statistics or dozens of discrete activity vs time graphs. It's hard to show the full cycle.
Any pointers welcome.
Thanks!
FROM COMMENTS:
> XHProf in conjunction with other programs such as Perconna toolkit
> (percona.com/doc/percona-toolkit/2.0/pt-pmp.html) for mySQL run apache
> with httpd -X & (Single threaded debug mode and background) then
> attach with strace -> kcache grind