Application monitoring tools give cloud admins insight into application performance and other crucial issues. These tools help admins understand complex distributed systems, which can often behave in unexpected ways. As more developers move from programming for single servers to writing distributed applications, they will come to depend on monitoring tools.
Most cloud providers, as well as third parties, offer deployment management and monitoring tools. Google is expanding the range of services and tools that are available to developers and system administrators with Cloud Monitoring, Cloud Trace and Cloud Debugger. Google's Cloud Monitoring tool is generally available today, and Cloud Trace and Cloud Debugger are in private beta release.
Keeping tabs on your apps with Cloud Monitoring
Cloud Monitoring is designed for finding performance problems in applications. The tool works with Google Cloud and popular application stack components, including open source Web servers, relational and NoSQL databases, and the ElasticSearch search engine.
The basic reporting unit of Cloud Monitoring is the metric, which quantitatively describes how resources are used. Metrics cover a wide range of performance factors, such as data utilization in bytes, count of disk I/O operations, number of connections to a Cloud SQL instance, count of incoming bytes dropped by the firewall, and CPU usage time.
Metrics are grouped according to labels. These labels identify a particular object, such as a service, location or disk type. Admins can then query Cloud Monitoring in ways comparable to querying a relational database using a SELECT and GROUP BY statement. Labels act as the keys in a key-value pair. The value becomes the quantity associated with the metric, and is subject to the set of constraints specified by the labels.
Multiple measurements of the same metrics for the same labels can be organized into time series. This allows you to analyze trends and perform comparative analysis across time periods.
Filling the gaps with Cloud Trace and Debugger
Monitoring is useful, but it is only the first step in addressing performance problems. Monitoring helps cloud admins see when key indicators are outside normal operating ranges, but it may not provide sufficient information to determine why those indicators -- or metrics -- are out of expected ranges. Cloud Trace utilities are designed to fill in missing information.
Cloud Trace provides detailed information about the time spent in modules and functions. For example, you may find multiple calls to a SQL query are causing poor overall application performance. In that case, optimizing the query or redesigning your data model could reduce joins by denormalizing your data model.
Google Cloud Debugger is designed to work with distributed applications. It works well with cloud applications and older debuggers designed for programs that run on a single server. For example, Google Debugger enables you to set a "watchpoint" in your code that collects state information and stack traces from all servers running that code. This is especially helpful for tracking bugs related to the distributed nature of the application, such as race conditions.
About the author:
Dan Sullivan holds a Master of Science degree and is an author, systems architect and consultant with more than 20 years of IT experience. He has had engagements in advanced analytics, systems architecture, database design, enterprise security and business intelligence. He has worked in a broad range of industries, including financial services, manufacturing, pharmaceuticals, software development, government, retail and education. Dan has written extensively about topics that range from data warehousing, cloud computing and advanced analytics to security management, collaboration and text mining.
Netflix sets the bar for cloud application availability
Google cloud monitoring forces AWS to take notice
What's hampering cloud application migration?