Monitoring the Microsoft Azure App Service

eG Enterprise provides a specialized layer model for monitoring the Azure App Service.

Figure 5 : Layer model of the Microsoft Azure App Service

Each layer of Figure 1 above is mapped to tests that report on the health of the web applications deployed on the service, the transactions to the web applications, and the underlying cloud infrastructure.

Using the metrics reported by these tests, administrators can find quick and accurate answers to the following:

  • Is web access to the Azure cloud available? If so, is the target Azure AD tenant responding quickly to web requests?

  • Is any web application not running currently? If so, which one is it?

  • Is any web application not accessible over the network? Which application is this?

  • Are any web applications overloaded with requests?

  • Is any web application hogging CPU?

  • Are users complaining that web applications are not responding quickly to web requests? If so, which application's responsiveness is poor? What is the cause of the sluggish response - is it because it is taking too long to establish a TCP connection with the application? is it because of poor throughput of the application? or is it because of processing delays experienced by the backend server of the application?

  • Were any HTTP error responses captured on any application? What type of errors were these?

  • Is any worker process on .NET CLR throwing managed exceptions?

  • Were any large objects collected during garbage collection (GC)? In which GC were the maximum number large objects collected? Which LOH garbage collection take the longest?

  • Which worker process spent the maximum time in GC?

  • Has any any worker process loaded many system/application classes on to memory? Which of these classes are hogging memory?

  • Were class load failures captured on any worker process? Which classes could not be loaded?

  • Did any worker process fail to load an assembly?

  • Is any worker process consuming heap memory excessively? If so, what type of objects is consuming memory abnormally - gen 0 objects? gen 1 objects? gen 2 objects? or large objects?

  • Has enough heap memory been allocated to large objects?

  • Did transactions to any .NET application encounter errors? Which is this error-prone application and what type of errors occurred on it?

  • Were slow/stalled transactions captured on any .NET application? Which are these transactions? What caused the slowness - slow queries? If so, which queries are slow?

Click on the links below for a detailed discussion on the tests mapped to and measures reported by each layer of Figure 5.

The Azure Infrastructure Layer

The Azure App Service Layer

The .NET Framework Layer

The IIS Transactions Layer