Introducing wavectl: A Command Line Client For Wavefront

Box has recently announced that we are supporting close to 60 million users. It is really exciting to empower so many people from a myriad of industries and help them work more efficiently. As our user count has grown, so has the workload of our software systems. In order to provide a high performing and highly available experience to our users, we have expanded our real-time monitoring, alerting, and analytics capabilities. Along the way, our friends in Wavefront have been a great partner to us. In this post, we would like to discuss some of our advanced monitoring use cases and introduce wavectl, a command line interface to Wavefront that we have recently open-sourced.

Aligned with Box’s ongoing expansion in microservices architecture, we are now running hundreds of microservices. A diverse range of microservices results in a large complexity in monitoring needs. Distinct services will have different monitoring and alerting requirements. Each team owning a set of microservices may have different best practices for their alerts and dashboards. The pervasive usage and variations in services resulted in 1000s of alerts and dashboards in Wavefront for us. As the platform owners, we became power users of Wavefront and experienced several advanced use cases.

Even though Wavefront has a powerful GUI, with 1000s of alerts and dashboards, the GUI is not suited for all our use cases. We have built wavectl, a command line interface for easier automated interactions with Wavefront. Wavectl builds on the v2 Wavefront API and does not attempt to replace the functionality of the Wavefront GUI. Instead, wavectl complements the GUI in certain use cases. We have written several guides showing the advantages of wavectl. Here is a selection of them:

If you are power users of Wavefront like us, we hope that you give wavectl a try and let us know if it has helped you or you want to suggest an enhancement.

Special thanks to Greg Lyons for his contributions.