PyroscopePyroscope is an open source continuous profiling platform that allows you to understand your systems resource usage (i.e. CPU, Memory, etc.) over time and gives you the ability to locate, debug, and fix issues related to performance
Business Result
Collaborating with Dashbouquet, Pyroscope increased revenue by 2x and the number of daily active users by — 30%🔥. Backed by Y Combinator, the US startup managed to raise a seed round in 2021 and attract numerous globally recognized clients with well-known Silicon Valley companies among them. In March 2023, Pyroscope was acquired by Grafana Labs looking to integrate an advanced continuous profiling tool into its projects💡. Currently, the organization plans to merge Pyroscope with its Phlare database. For Grafana Labs individually, we created a plugin that allows for displaying Pyroscope’s data on the interface of the Grafana service. Pyroscope about us “They've demonstrated seamless project management, which has stood out in the partnership. Their communication, development skills, and problem-solving skills are impressive. The fact that they take the time to communicate with each other between engineers and their product team allows for them to solve a lot of the problems before they even communicate with us which allows us to all move together forward collectively much more quickly and efficiently. Absolutely loved working with Dashbouquet and looking forward to continue working with them.” —Ryan Perry, CEO of Pyroscope.
Project idea
The client is a US technology startup named Pyroscope. Founded in 2020, the company provides an innovative continuous profiling solution. The tool allows DevOps teams to monitor app performance and resource utilization not only during software development but also in production💥. The system makes regular snapshots of the entire infrastructure, accumulating, aggregating, and visualizing data for further analysis. Known as Sampling Profiling, this method does not create additional load and can be used even after application release. With Pyroscope, engineers can easily identify issues and their root causes. Thanks to this functionality, the startup has transformed the market. Famous organizations, such as SensorTower, Confluent, Plaid, Polkadot, and Line Corporation have already integrated Pyroscope✅. Project idea The company’s open-source product Pyroscope had limited functionality necessary to attract new clients and meet the needs of existing, famous Silicon Valley ones👀. Furthermore, the product had some operation errors. In addition, the user interface (UI) included a wide range of excessive elements, which disrupted the user experience. However, Pyroscope did not have sufficient in-house resources to perform the required tasks. As a consequence, the startup was not able to cope with customer requests. So, Pyroscope aimed to: - Find a reliable IT partner to scale an in-house team and start the project without delays. - Quickly deliver new functionality and customizations to Pyroscope's new clients, as well as recreate the UI. - Previously, the company worked with more than 50 different contractors but over time realized that the search, recruitment, and cooperation were difficult and resource-consuming. After a range of screenings, Pyroscope hired Dashbouquet to perform the necessary tasks⚡️. The startup chose Dashbouquet considering multiple aspects like developer proficiency, communication/process transparency, and the ability to understand goals.
Tech Stack
TypescriptReactRedux ThunkCss modulesGolangFlotCanvasStorybookCypressJestDocusaurus
Solution
Duration Total: 12 months Development phase: January 2022 - December 2022 We started by analyzing project specifications. Once this was done, we estimated the work scope, prepared a list of tasks, and promptly assembled a dedicated development team. Dividing the work scope into 2–3 week iterations, our engineers delivered a significant amount of core functionality (Node.js profiler, Ruby agent, etc.). A part of the team was involved in cloud and back-end development while the other was responsible for the user interface (UI). We also completed multiple tasks upon the requests of Pyroscope’s customers — famous Silicon Valley companies, which became a significant step towards further M&A by Grafana Labs. As Pyroscope’s customers might use different technology stacks, our main challenge was to provide support for various programming languages, frameworks, etc. On top of that, large-scale organizations like Stripe and Shopify would need to aggregate, store, and process petabytes of data. To satisfy the requirements of existing and future Pyroscope’s clients, we wrote agents for the necessary languages. For instance, our engineers created a continuous profiler for Node.js, which involved Node.js and C++ modules and used a Sampling Profiling technology. What’s more, we wrote Ruby and other agents. The agent gathers data and sends it to the Pyroscope’s server. Then, the system puts the data in a common format for further visualization on the dashboard. Now, Pyroscope supports plenty of agents (Go, Python, eBPF, Ruby, PHP, Node.js, .NET, Java, etc.), from which application performance data is collected. Then, we delivered a lot of new features and customizations. For example, our developers integrated profiling and tracing (a new method to store data and identify problems) functionality for Honeycomb. Apart from full-stack tasks, we redesigned the UI, making it super intuitive. Our team made the UI accessible to different user groups, including color-blind people. Additionally, we implemented the “light mode”. Key features Our software development team delivered a range of features, involving: - New types of data visualization: Tag explorer, Tracing exemplars (Heatmap), GraphViz, and Sandwich view. - “Light mode” with the ability to switch it to a “Dark” one. - Web accessibility to color-blind people and other user groups. - Agents to gather data for Node.js, Ruby, etc. - A local web server to provide the ability to configure users and API keys. - Statistics visualization with filters like languages and profile types (processor, memory, etc).
01 / 05