Project Description
I find myself often rerunning the same preprocessing tasks on perf captures, like one-liner scripts to merge/split per-cpu data, time-slice them, filter for specific events and finally plot charts (flamegraphs, heat map, ...). Each time one of these tools run perf-script, just loading 30s worth of events from a large machine can consume precious seconds in my modern laptop. The idea is to provide an interactive tool a la GDB and drgn where we can load the events once and manipulate them interactively to generate different visualizations.
Investigating a performance issue is often an interactive process, where you look at the data from several fronts, filter out noise, look into smaller/larger chunks, etc. There is not really a sequence of tasks to do, instead you go where the information leads you. Thus, being able to quickly manipulate the data into different formats would be a valuable addition to a performance analyst toolset.
While the initial proposal focus on perf-tool, there is nothing preventing it from supporting different capture formats (ftrace, bcc-tools, blktrace...)
Goal for this Hackweek
Have a CLI tool that can load perf captures into an internal object representation and expose a python-like interpreter to manipulate the data.
Support time-slicing and filtering the data
Plot time-sliced flamegraphs efficiently. Rely on one of the multiple projects to do the actual plotting. I don't want to reinvent flamegraphs generation but speed up the intermediary steps.
Resources
drgn, gdb
wireshark
flamegraphs
trace-cmd
Looking for hackers with the skills:
Nothing? Add some keywords!
This project is part of:
Hack Week 23
Comments
Be the first to comment!
Similar Projects
This project is one of its kind!