clinicjs / node-clinic

Clinic.js diagnoses your Node.js performance issues
https://clinicjs.org
MIT License
5.68k stars 125 forks source link

Non-http servers and clinic.js #272

Open JonSilver opened 3 years ago

JonSilver commented 3 years ago

I love what clinic.js does. But not all node.js servers are http/ws servers. Has anyone initiated a project to create a more general purpose load-generation tool for use with clinic.js, for profiling and diagnosing servers that are mqtt clients/peers, for example? Or servers that perform some sort of batch processing function?

mcollina commented 3 years ago

That would be quite a nice contribution to make! Would you like to help? The approach we follow with autocannon could be ported to other protocols as well.

JonSilver commented 3 years ago

I'd love to, @mcollina. I've not had a close look at how autocannon does it's work under the hood. But I'm guessing it's pretty closely harnessed to the http protocol. I'll take a look.

Since this new thing would be quite a general-purpose load-generation tool, some decent amounts of thought should probably go into its architecture, particularly interfaces for defining test suites. Probably something involving registration of worker functions that actually hit the server with queries/data. Some randomisation helpers would probably be good too.

All this leads me to question whether something similar already exists within the JavaScript universe.

Of course available time may be my biggest obstacle in leading such an effort. I'll look into it and report back though.

mcollina commented 3 years ago

Awesome!