In a nutshell, Azure services are nothing more than remote virtual servers. Monitoring them is, therefore, quite similar to monitoring other virtual servers, which is similar to monitoring any server. And if your Azure setup includes more than file servers, they too will need to be monitored. Typical setups often include databases and other applications. Let’s have a quick look at the different types of monitoring which can be useful in an Azure context.
Availability monitoring is the most basic form of monitoring. It is often a simple matter of verifying that a given resource is responding. In an on-premises environment, this is the kind of test which is best done using ping. But with since Azure environments are typically only reachable via the Internet and knowing that ping is not always allowed on the Internet, other means of verification exist. But we want to verify that not only machines are running but that certain specific services are too. For instance, testing for a response on port 80 could validate that the web server component is running.
The next things one might want to monitor are the different devices operational metrics. The same basic techniques used of local monitoring can generally be used with Azure. As for what operational metrics are monitored, we can think of things such as CPU load and memory usage, for example. Other metrics that are closer to the physical system—such as CPU core temperature—are often left out as they pertain to the part of the environment that is managed by Microsoft.
The last element that is often monitored is performance. By that, we are referring to the end to end performance of the system as a whole. Some refer to this as user experience monitoring. The idea is to verify that all the various components are communicating correctly and that each one is responding in a timely manner, offering acceptable end-to-end performance.