parca-dev / parca

Continuous profiling for analysis of CPU and memory usage, down to the line number and throughout time. Saving infrastructure cost, improving performance, and increasing reliability.
https://parca.dev/
Apache License 2.0
4.03k stars 210 forks source link

Generate callgraph report - node / edge list #1470

Open monicawoj opened 2 years ago

monicawoj commented 2 years ago

This issue is related to the UI issue of creating a callgraph visualization: #304

In order to render a callgraph visualization in the UI, we will need the backend to format data as a list of nodes and edges, as such:

Node {
  data: {
    id,
    ...any additional info related to the method called
  }
}

Edge {
  data: {
    id,
    source, // id of a node
    target, // id of a node
    ...any additional info related to the edges between nodes
  }
}

{ data: {nodes: Node[], edges: Edge[]} }

This data will help inform us as to which layout algorithm will be optimal for rendering the callgraph, so it would ideally be complete before the frontend is ready to merge. Once the layout algorithm informed by real data has been chosen, both PRs (backend and frontend) can be merged.

manojVivek commented 2 years ago