Netflix / flamescope

FlameScope is a visualization tool for exploring different time ranges as Flame Graphs.
Apache License 2.0
3.02k stars 169 forks source link

Fix stack parsing for Go lambdas #34

Closed prateek closed 6 years ago

prateek commented 6 years ago

The stack parsing code drops Golang stacks with names of the form "(...)".

example repro Before: `github.com/m3db/m3db/vendor/github.com/m3db/m3x/pool.` ![before](https://user-images.githubusercontent.com/199982/38576064-05769048-3ccb-11e8-99e8-60f8e7d4eb6d.png) After: `github.com/m3db/m3db/vendor/github.com/m3db/m3x/pool.(*objectPool).Put` ![after](https://user-images.githubusercontent.com/199982/38576074-0e35195c-3ccb-11e8-9406-725fb809d604.png)

NB: I don't know much about perf's output format so I'm not a 100% sure the logic I've changed is sound. Happy to update per feedback.

brendangregg commented 6 years ago

See the block comment in ./app/util/regexp.py.

The point of that comment is to list all possible permutations that we must parse. If it's missing one (go lambdas) then you should add it to that block comment while changing the code. At some point this can be a automated test suite.

BTW, having done this a lot before with other repos, the "I'm not sure about this" changes to parsing perf script output leads to breakage. Please study that comment to see if you might have broken parsing elsewhere.

spiermar commented 6 years ago

Closing for lack of activity.