antoine-coulon / skott

All-in-one devtool to automatically analyze, search and visualize project modules and dependencies from JavaScript, TypeScript (JSX/TSX) and Node.js (ES6, CommonJS)
MIT License
643 stars 25 forks source link

Introduce diagnostics collection to monitor performance #134

Open antoine-coulon opened 7 months ago

antoine-coulon commented 7 months ago

Everything is summed up there https://github.com/antoine-coulon/skott/issues/69#issuecomment-1871630942

The goal is to anonymously collect performance diagnostics to potentially establish performance issues related to graph sizes. Currently, skott is not collected any data. I didn't get much user feedbacks about performances but from my own experience it quickly gets ugly when having thousands of nodes, but especially high number of edges. The interesting there would be to be able to correlate graph size (nodes+edges) with performance and to see what should be improved.

Implementation

  1. Introduce a CLI flag to enable that collection, such as --collect-diagnostics. This flag would only collect diagnostics and generate a JSON file with summary. This would allow users to link it to issues, without relying on network calls to send the diagnostics to skott's backend.

  2. Introduce another CLI flag to enable and send collection, such as --send-diagnostics. This flag would basically collect (the same as the previous one) but instead of generating a file it would send the data right away to skott's backend.

  3. Then obviously, we would need a way to receive that data when using --send-diagnostics, using a custom web server. That server would then process in-coming diagnostics and only store diagnostics that is the payload, nothing from client information (IP etc).