Giter Club home page Giter Club logo

Comments (3)

kolesnikovae avatar kolesnikovae commented on May 29, 2024 1

@kolesnikovae does this also imply that the x-axis in the flamegraph could/would be "time" instead of "samples"?
If so, I'd love to see this feature.

No, not quite. Currently, Pyroscope is most suited for statistical profiling. In such a profile, we do not have any information on the order of calls or when exactly a function was called. Instead, it shows aggregated measurements for sampled stack traces: for a CPU profile, this typically involves counting the number of times the stack trace was observed executing on the CPU. This allows us to visualize this information as a flame graph – I'll quote the author of the idea:

The x-axis shows the stack profile population, sorted alphabetically (it is not the passage of time), and the y-axis shows stack depth, counting from zero at the bottom. Each rectangle represents a stack frame. The wider a frame is is, the more often it was present in the stacks. The top edge shows what is on-CPU, and beneath it is its ancestry. Original flame graphs use random colors to help visually differentiate adjacent frames. Variations include inverting the y-axis (an "icicle graph"), changing the hue to indicate code type, and using a color spectrum to convey an additional dimension.

What you're describing is another kind of profile – a so-called event-based profile or an execution trace. This is a vastly different type of signal, with a completely different data model and analysis methods.

As of now, Pyroscope does not support profiles of this type. The main reason is that it's currently impractical to continuously profile programs in this fashion: the amount of data this produces and the footprint on the profiled program are the biggest problems. Therefore, profiling of this type is typically performed on an ad-hoc basis

from pyroscope.

martijnthe avatar martijnthe commented on May 29, 2024 1

@kolesnikovae thanks so much for your detailed answer!

from pyroscope.

martijnthe avatar martijnthe commented on May 29, 2024

@kolesnikovae does this also imply that the x-axis in the flamegraph could/would be "time" instead of "samples"?
If so, I'd love to see this feature.

Our use case: alongside the boons of distributed profiling, it's very useful to "drill down" into a single profile to get a better understanding of a performance issue. In particular in cases where the same stack traces can appear multiple times and the ordering of calls is key to understanding & debugging an issue.

Right now it seems like the ordering within the flamegraph to be somewhat arbitrary. Is there documentation somewhere on how the aggregation (and visualization thereof) works?

from pyroscope.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.