Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flame graphs #16423

Closed
tbragin opened this issue Jan 31, 2018 · 6 comments
Closed

Flame graphs #16423

tbragin opened this issue Jan 31, 2018 · 6 comments
Labels
discuss Feature:Lens Feature:New Vis Request for a new visualization type impact:needs-assessment Product and/or Engineering needs to evaluate the impact of the change. Team:Visualizations Visualization editors, elastic-charts and infrastructure

Comments

@tbragin
Copy link
Contributor

tbragin commented Jan 31, 2018

Flame graphs can be useful for visualizing output of a profiling tool:
http://www.brendangregg.com/flamegraphs.html
https://github.com/brendangregg/FlameGraph

screen shot 2018-01-30 at 4 42 17 pm

I remember chatting with @danielmitterdorfer about this a while back. Would be interesting to think through how profiling data can be stored in Elasticsearch and visualized in a native Kibana visualization like this.

cc: @alexfrancoeur @thomasneirynck

@tbragin tbragin added discuss Feature:Visualizations Generic visualization features (in case no more specific feature label is available) Feature:New Vis Request for a new visualization type labels Jan 31, 2018
@axw
Copy link
Member

axw commented Mar 14, 2018

I've been wanting profiling storage since forever. Now that I'm at Elastic, I thought I'd actually do something about it. I've started on a new Beat which gathers pprof profiles: https://github.com/axw/pprofbeat.

(This is my first real foray into ES and Beats, so the data format is probably not great - but it's something.)

I care mostly about profiling Go programs, which is pretty straightforward: import a standard package, and you can expose CPU and heap profile data via an HTTP endpoint. What I want to see is:

  • periodic profiling (done by pprofbeat; other beats would be required for on-machine profiling, i.e. "perf" and friends)
  • Kibana visualisations, with the ability to compare profiles (e.g. to see how much memory has grown over time, or how the CPU profile looks at various load levels)

I was intending to look at embedding the "pprof" web UI as a plugin, although I don't really know where to start. Needless to say, the more integrated the better.

A few screenshots of the pprof web UI below in case folks are not aware of it - might serve as inspiration.

Example pprof graph:
image

Pprof flamegraph:
image

Pprof top offenders:
image

Pprof source code annotation:
image

@pmoust
Copy link
Member

pmoust commented Apr 5, 2018

A very interesting visualisation approach from the Netflix Perf team, Flamescope

image

This tool makes it easy to distinguish patterns and pop into flamegraph view in subsecond granularity.

X axis is time (t) in seconds, Y axis is the millisecond split of t. The vector that produces the heatmap color density is the event count for that X->Y time.

@timroes timroes added the Team:Visualizations Visualization editors, elastic-charts and infrastructure label Sep 16, 2018
@timroes timroes removed Feature:Visualizations Generic visualization features (in case no more specific feature label is available) labels Oct 1, 2018
@formgeist
Copy link
Contributor

I've taken the liberty of creating a new visualization type request in Elastic Charts elastic/elastic-charts#519 to open the conversation with that team and in order to make a qualified assessment on pursuing an MVP implementation for APM and what that should entail.

@formgeist
Copy link
Contributor

Elastic Charts have just released an alpha version of the flame chart elastic/elastic-charts#965

@monfera
Copy link
Contributor

monfera commented Mar 5, 2021

elastic-charts merged focus (in-chart drilldown) with tweening

Mar-02-2021.15-59-31.mp4

@stratoula stratoula added Feature:Lens impact:needs-assessment Product and/or Engineering needs to evaluate the impact of the change. labels May 29, 2023
@timductive
Copy link
Member

Closing as we now have a flame graph in the o11y profiler application

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discuss Feature:Lens Feature:New Vis Request for a new visualization type impact:needs-assessment Product and/or Engineering needs to evaluate the impact of the change. Team:Visualizations Visualization editors, elastic-charts and infrastructure
Projects
None yet
Development

No branches or pull requests

8 participants