While dynamic languages are extremely popular for rapid development, they are also notoriously difficult to debug in production environments. Despite being a relative newcomer, Node.js has already developed sophisticated tools for both postmortem and runtime analysis, often surpassing those of mature environments like Java. Such tools are becoming increasingly critical as the growing ubiquity of cloud computing leads to larger, more complex distributed systems. The old cycle of printf debugging, long frustrating for developers and ops alike, falls apart in such environments.
We will discuss in depth our work building and deploying open source tools to facilitate postmortem debugging and runtime profiling of Node.js programs in production. We will describe actual problems we have diagnosed using these tools that we were unable to solve with existing methods and then share some of the best practices we’ve learned to aid postmortem analysis. We will then discuss DTrace support for Node.js, which enables developers to profile arbitrary Node programs in production to understand where programs spend their time on CPU. Finally, we will show some of the novel visualizations we’ve developed (along with the open source tools to create them) that aggregate and present this large amount of performance data.
David Pacheco is the lead engineer of Joyent’s Introspection Team, which develops Cloud Analytics and other tools for observing software in the cloud. Previously a member of the Fishworks team at Sun Microsystems, David worked on several areas of the Sun Storage 7000 series of appliances including remote replication, fault management, and flash device support.
For information on exhibition and sponsorship opportunities at the conference, contact Sharon Cordesse at (707) 827-7065 or firstname.lastname@example.org.
View a complete list of OSCON contacts