Live data from Hacker News

Flameshow: A terminal flamegraph viewer

github.com

11–19 of 19 posts

Re: Flameshow: A terminal flamegraph viewer

#11
post #3

What format does this support? Would be nice to have more examples, like how do I connect this to node profiling for instance?

URL in example says Go pprof so at least that. I wish it to be compatible with my go-to Ruby tools: https://github.com/ruby-prof/ruby-prof https://github.com/rbspy/rbspy thus replacing this one: https://github.com/brendangregg/FlameGraph

rbspy supports pprof output. I haven't tried using it with this tool yet, but it should work.

Re: Flameshow: A terminal flamegraph viewer

#12

What format does this support? Would be nice to have more examples, like how do I connect this to node profiling for instance?

For now, golang only. But I am working on other supports. Is there any common format for flamegraph (stacks), or should I do the work for all tools and languages?

Historically brendangregg's since AIUI he basically invented flamegraphs

https://www.brendangregg.com/flamegraphs.html

So if you can make your tool eat whatever https://github.com/brendangregg/FlameGraph is fed with you're going to support a lot of existing tooling across OSes and languages.

Re: Flameshow: A terminal flamegraph viewer

#13
post #10
post #6

Earlier quoted context omitted.

Since pprof is supported you could use parca-agent [1], an eBPF-based profiler that I happen to work on, as when you browse the debug UI on port 7071 you can download a pprof formatted profile for any process running on the machine. Supports Go, Rust, C++, C, Ruby, Python, C#, Java, Julia, Erlang, Nodejs, wasmtime, and more. [1] https://github.com/parca-dev/parca-agent [2] https://www.parca.dev/

If that's true, you should probably update the docs. Everything I could find implied dotnet, jvm, python were still unsupported. For example, the roadmap section of the readme mentions most of these as future targets but nothing even mentions dotnet. However I did find your tickets and a demo being merged in which makes dotnet seem maybe supported? Ticket: https://github.com/parca-dev/parca-agent/issues/161 Demo: htt…

Thanks for mentioning that! We'll do that. To clarify the current state: dotnet and jvm require enabling flags, python fully works without any changes (as of 2 weeks ago blog post on how we made this possible is about to be released).

Re: Flameshow: A terminal flamegraph viewer

#14

What format does this support? Would be nice to have more examples, like how do I connect this to node profiling for instance?

For now, golang only. But I am working on other supports. Is there any common format for flamegraph (stacks), or should I do the work for all tools and languages?

I find py-spy really useful in python, it would be neat if you integrated with that somehow.

Re: Flameshow: A terminal flamegraph viewer

#15
This is awesome work and textual being able to support terminal or web (https://github.com/Textualize/textual-web) also gives hope that this can be more than a terminal app. I'm hoping that in the future features like this can be standard in Linux's perf tool, for example, Firefox profiler support was recently added as a Google summer-of-code contribution: https://perf.wiki.kernel.org/index.php/Tutorial#Firefox_Prof...

Re: Flameshow: A terminal flamegraph viewer

#17

this is very cool, but...where does one get the data to visualize? Is there a standard for flamegraph data structures? There appears to be zero documentation on what it needs as input.

> Stack samples can be captured using Linux perf_events, FreeBSD pmcstat (hwpmc), DTrace, SystemTap, and many other profilers. See the stackcollapse-* converters

https://github.com/brendangregg/FlameGraph

Re: Flameshow: A terminal flamegraph viewer

#18

this is very cool, but...where does one get the data to visualize? Is there a standard for flamegraph data structures? There appears to be zero documentation on what it needs as input.

from the README:

> Currently it only supports Golang's pprof dump, I am working on supporting more formats

Re: Flameshow: A terminal flamegraph viewer

#19

this is very cool, but...where does one get the data to visualize? Is there a standard for flamegraph data structures? There appears to be zero documentation on what it needs as input.

Yes, for now I didn't find any standard format of samples dump.

I already figure out how to integrate with golang's pprof, seems I need to work with other perf tools as well.

I am thinking about adding a flag like `--input-format=pprof` for different outputs.

Post reply on HN