Azure Web Apps Test

Azure App Service is a managed cloud service that allows you to deploy a web application and make it available to your customers on the Internet in a very short amount of time. Since such web applications are typically of a business-critical nature, customers insist on their continuous availability and peak performance at all times. To avoid customer complaints, cloud administrators should  constantly check the availability, responsiveness, and resource utilization of every web application deployed on the Azure App Service, swiftly identify those applications that are experiencing availability, operational, or overall performance issues, and rapidly initiate measures to eliminate the bottleneck. The Azure Web Apps test helps administrators in this regard.

By continuously tracking the status of each web application deployed on the Azure App Service, this test points administrators to applications that are not running. Additionally, the test periodically checks the TCP connection to each web application, thereby alerting administrators to those applications that may be running, but are inaccessible over the network. HTTP responses sent by the application are also scrutinized, and HTTP errors promptly captured and reported, so that administrators can quickly figure out why an application is unavailable.

Also, by monitoring the responsiveness of applications to web requests, the test pinpoints applications that are responding slowly to these requests and why - is it because of a latent network connection? is it owing to a slow backend server? is it due to heavy request load on the application? or is poor application throughput the bottleneck? Furthermore, the test also measures the CPU usage of each web application, thus leading administrators to those applications that are hogging CPU and adversely impacting the performance of other web applications.

Target of the Test: Microsoft Azure

Agent deploying the test: A remote agent

Output of the test: One set of results for each web application hosted by the Azure App Service

Configurable parameters for the test
Parameters Description

Test Period

How often should the test be executed.

Host

The host for which the test is to be configured.

Tenant ID

Specify the Directory ID of the Azure Active Directory that is associated with the subscription of the target Microsoft Azure. To know how to determine the Directory ID, refer to Configuring the eG Agent to Monitor the Microsoft Azure App Service.

Client ID and Client Password

The eG agent communicates with the target Microsoft Azure using JAVA API calls. To collect the required metrics, the eG agent requires an Access token in the form of an Application ID and the client secret value. To know more about determining the Application ID and the key refer to Configuring the eG Agent to Monitor the Microsoft Azure App Service. Specify the Application ID of the created Web Application in the Client ID text box and the client secret value in the Client Password text box.

Detailed Diagnosis

To make diagnosis more efficient and accurate, the eG Enterprise embeds an optional detailed diagnostic capability. With this capability, the eG agents can be configured to run detailed, more elaborate tests as and when specific problems are detected. To enable the detailed diagnosis capability of this test for a particular server, choose the On option. To disable the capability, click on the Off option.

The option to selectively enable/disable the detailed diagnosis capability will be available only if the following conditions are fulfilled:

  • The eG manager license should allow the detailed diagnosis capability
  • Both the normal and abnormal frequencies configured for the detailed diagnosis measures should not be 0.
Measures reported by the test:
Measurement Description Measurement Unit Interpretation

Status

Indicates the current state of this website.

 

The values reported by this measure and its numeric equivalents are mentioned in the table below:

Measure Value Numeric Value
Running 1
Stopped 2
Unknown 0

Note:

By default, this measure reports the Measure Values listed in the table above to indicate the current state of this website. The graph of this measure however, is represented using the numeric equivalents only - 0 to 2.

The detailed diagnosis of this measure if enabled, lists the URL that is used to hit the web app, the service plan, the web space of the web app and the tier of the web app.

Is site enabled?

Indicates whether/not this web app is enabled.

 

The values reported by this measure and its numeric equivalents are mentioned in the table below:

Measure Value Numeric Value
Enabled 0
Offline 1

Note:

By default, this measure reports the Measure Values listed in the table above to indicate whether the web app is enabled or not. The graph of this measure however, is represented using the numeric equivalents only - 0 or 1.

Usage state

Indicates the current availability of management information of this web app.

 

The values reported by this measure and its numeric equivalents are mentioned in the table below:

Measure Value Numeric Value
Yes 1
No 0

Note:

By default, this measure reports the Measure Values listed in the table above to indicate the current availability of management information of this web app. The graph of this measure however, is represented using the numeric equivalents only - 0 or 1.

Compute mode

Indicates the compute mode of this web app.

 

The values reported by this measure and its numeric equivalents are mentioned in the table below:

Measure Value Numeric Value
Limited 1
Normal 0

Note:

By default, this measure reports the Measure Values listed in the table above to indicate the compute mode of this web app. The graph of this measure however, is represented using the numeric equivalents only - 0 or 1.

Is SSL enabled?

Indicates whether/not this web app is SSL-enabled.

 

The values reported by this measure and its numeric equivalents are mentioned in the table below:

Measure Value Numeric Value
True 1
False 0

Note:

By default, this measure reports the Measure Values listed in the table above to indicate whether/not this web app is SSL-enabled. The graph of this measure however, is represented using the numeric equivalents only - 0 or 1.

CPU time

Indicates the amount of time the CPU was actually executing instructions for this web app during the last measurement period.

Secs

 

No of requests

Indicates the total number of requests to this web app during the last measurement period.

Number

 

Data in

Indicates the rate at which the data was received from this web app during the last measurement period.

Mbps

 

Data out

Indicates the rate at which data was sent from this web app during the last measurement period.

Mbps

 

HTTP success

Indicates the number of times the HTTP requests were successful during the last measurement period.

Number

 

HTTP redirection

Indicates the number of times the HTTP request were redirected to this web app during the last measurement period.

Number

 

HTTP client error

Indicates the total number of HTTP client errors encountered by this web app during the last measurement period.

Number

Ideally, the value of this measure should be zero.

HTTP server error

Indicates the number of HTTP server errors encountered by this web app during the last measurement period.

Number

Ideally, the value of this measure should be zero.

HTTP unauthorized

Indicates the number of HTTP 401 errors i.e., unauthorized errors encountered by this web app during the last measurement period.

Number

Ideally, the value of this measure should be zero.

HTTP forbidden

Indicates the number of HTTP forbidden errors encountered by this web app.

Number

Ideally, the value of this measure should be zero.

HTTP not found

Indicates the number of HTTP 404 errors i.e, HTTP not found errors encountered by this web app.

Number

Ideally, the value of this measure should be zero.

HTTP not acceptable

Indicates the number of HTTP 406 errors encountered by this web app during the last measurement period.

Number

Ideally, the value of this measure should be zero.

Memory working set

Indicates the amount of physical memory required for the working set of this web app.

MB

 

Average memory working set

Indicates the average amount of memory required for the working set of this web app.

MB

 

Average response time

Indicates the average time taken by this web app to respond to requests.

Secs

A high value for this measure indicates that the web app is taking too long to respond.

Total response time

Indicates the total time taken by this web app to respond to requests.

Secs

A high value for this measure indicates that the web app is taking too long to respond.

TCP availability

Indicates whether the test managed to establish a TCP connection to this web app.

Percent

Failure to establish a TCP connection may imply that either the web app is not up, or is not operating correctly. In some cases of extreme overload, the failure to establish a TCP connection may be a transient condition. As the load subsides, the web app may start functioning properly again.

TCP connection time

Quantifies the time for establishing a TCP connection to this web app.

Secs

Typically, the TCP connection establishment must be very small (of the order of a few milliseconds).

Server response time

Indicates the time period between when the connection was established and when the server sent back a HTTP response header to this web app.

Secs

While the total response time may depend on several factors, the server response time is typically, a very good indicator of a server bottleneck (e.g., because all the available server threads or processes are in use).

Content validity

Validates whether this web app was successful in executing the request made to it.

Percent

A value of 100% indicates that the content returned by the test is valid. A value of 0% indicates that the content may not be valid. This capability for content validation is especially important for multi-tier web applications. For example, a user may not be able to login to the web site but the server may reply back with a valid HTML page where in the error message, say, "Invalid Login" is reported. In this case, the availability will be 100 % (since we got a valid HTML response). If the test is configured such that the content parameter should exclude the string "Invalid Login," in the above scenario content validity would have a value 0.

Response code

Indicates the response code returned by this web app.

Number

A value between 200 and 300 indicates a good response. A 4xx value indicates a problem with the requested content (eg., page not found). A 5xx value indicates a server error.

Content length

Indicates the size of the content returned by this web app.

KB

Typically the content length returned by the server for a specific URL should be the same across time. Any change in this metric may indicate the need for further investigation on the server side.

Data transfer time

Indicates the time taken for a data transfer between the drive and the host system.

Secs

Data transfer time being high denotes a problem.

SSL certificate validity

Indicates the number of days from the current day for which the SSL certificate of this web app will be valid.

Number

A low value for this measure implies that the SSL certificate is about to expire. You may want to renew the certificate or deploy a new SSL certificate to ensure continued accessibility of the web app.