Google has released a new tool that gives developers a way to continuously profile and understand how their code is executing in production environments so they can quickly identify and address potential performance issues.
The new Stackdriver Profile is based on much of the same Application Performance Management (APM) capabilities that Google uses internally to monitor the performance of some of its own applications. It is designed for use on applications running anywhere—in cloud and on-premises. It is priced so most developers can benefit from the technology, according to Google.
Stackdriver Profiler adds to and works with Google's two existing APM tools—Stackdriver Monitoring and Stackdriver Logging, which are designed to alert developers to potential performance-impacting infrastructure and security issues.
Stackdriver Profiler's key benefit lies in its ability to help developers identify performance issues while an application is running and without disrupting user experience, something that is typically hard to achieve, said Google product manager Morgan McLean in a blog March 28.
"Production profiling is immensely powerful, and lets you gauge the impact of any function or line of code on your application’s overall performance," McLean wrote. Such analysis can help developers identify functions and code that is unexpectedly resource intensive and have a negative impact on latency and the cost of web services, he said.
Stackdriver Profiler is designed to analyze code execution across multiple environments and uses statistical methods to minimize impact on any codebase that is being monitored. It builds on top of the core functionality provided by Stackdriver Trace and Debugger—two Google technologies for analyzing and debugging live applications.
Stackdrive Profiler, according to Google, works by continuously gathering CPU usage and memory allocation data from production applications and attributing that information to the application's source code. The process helps developers identify portions of the applications that are dragging down overall performance by consuming the most resources.
Unlike profilers that analyze static code during the development and testing stage to identify bugs and code flaws, Stackdriver Profiler is designed to provide visibility into the actual resource consumption of an application via dynamic code analysis.
According to McLean, Stackdriver Profiler comes without some of the typical concerns associated with using other production application profilers such as the potential for application slowdowns and higher costs.
One reason is that Stackdriver Profiler uses an approach known as sampling to collect information about an applications memory and CPU usage. It does not require any of the pervasive changes to a program's code that is otherwise required to enabled performance data collection, according to Google.
Stackdriver Profiler is currently available in beta. It can be used in a variety of cloud and container environments including Google Compute Engine, Google App Engine Flex and Google Kubernetes Engine.
In addition to Stackdriver Profiler, Google this week also announced integrations between its Stackdriver Debugger and GitHub Enterprise and GitLab code repository managers.