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!
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:
clinic upload 11052.clinic-bubbleprof
And then share the URL with us or anyone you choose so that the output can be discussed and analysed.
nearForm provides a set of commercial support packages and bundles around Node Clinic. In addition to support for the tools themselves, which includes private Clinic Upload, we also provide the most up-to-date OSS Node.js distro for containers and an extensive range of solution development and Secure DevOps services.
Please contact us to discuss your specific requirements in this area.
Commitment to OSS
nearForm continues to invest heavily in the Node.js ecosystem, with seven Node.js Core committers currently supported by us. Clinic and particularly 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 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. Led by the always brilliant Matteo Collina, 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.
Installing and Running
You can get started simply by installing Clinic
npm install -g clinic
and following the walkthrough on ClinicJS.org.
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.