Back in January, we announced the Node Clinic project and the first tool in Clinic, Doctor. After many intensive months of work by the team, we’re more than a little excited to announce Clinic Bubbleprof!
Clinic Bubbleprof has a unique new approach to profiling your Node code so that you can visualise exactly where and how that code is busy. You can quickly uncover whether bottlenecks are in your code, in Node modules or in an external system.
We believe that the approach we have created in these visualizations has never been done before in a software context and has wide-ranging potential beyond Node.js. We’re incredibly proud to release it.
In a nutshell, Bubbleprof observes the async operations of your application, groups them, measures their delays, and draws a map of the delays in your application’s async flow.
The real power of the tool was demonstrated recently where it uncovered inefficiencies in both the Fastify web framework and in Node.js Core itself!
The team has written a deep-dive blogpost into the features, technology and usage of Bubbleprof. In this post I want to cover some high-level topics.
As part of the announcement, we also want to tell you about clinicjs.org , our new community site for everything related to Node Clinic. Head over there to learn how to use all of the tools or get involved. The site is undergoing rapid iteration at the moment so check back regularly.
We have been testing Bubbleprof on a wide range of code, but we are eager to see it used extensively by the community so that its output continues to improve. To that end, we have also created Clinic Upload . You can upload your timing data from Doctor, Flame and Bubbleprof to our site using a command like:
And then share the URL with us or anyone you choose so that the output can be discussed and analysed.
NearForm continues to invest heavily in the Node.js ecosystem, with seven Node.js Core committers currently supported by us. Clinic and particularly Clinic Bubbleprof are further evidence of our commitment to Node.js and to Open Source. For that reason, Clinic has been released under the GPL 3.0 licence to maximise its long-term benefit to the wider community.
In the Doctor announcement, we mentioned the use of a Design-led approach to building OSS. We really doubled-down on this for Clinic Bubbleprof, where one of our Designers worked with our Data Science, Data Visualisation and Node Core experts to devise this completely novel approach to visualising activity in code.
I’ve worked with a lot of great teams over the years but it has been a special honour to work with these amazing domain experts on Clinic Bubbleprof. Led by the always brilliant Matteo Collina, Clinic Bubbleprof is the result of many long hours by Alan Slater, Kamil Mech, Mathias Buus, Andreas Madsen and Joy Burke, with invaluable assistance from David Mark Clements, Renée Kooi, James Snell and countless other NearFormers.
You can get started simply by installing Clinic
We are very interested in building a community of like-minded individuals and companies around these tools. If you’d like to get involved in any aspect, not just code, first read our Code of Conduct and Contributor guide . Then feel free to reach out to us on GitHub or via the usual social channels.