Apache Web Transactions By Site Test

Whenever users encounter errors or complain of slowdowns during performing business transactions via your mission-critical web sites (on an IIS web server), administrators may want to know if the issue is caused from the web sites that perform the transactions. For this, administrators will have to periodically monitor the web sites, so as to quickly and accurately identify the web sites that process the requests slowly and return maximum number of erratic responses. The Apache Web Transactions By Sites test helps you achieve this.

This test auto-discovers the web sites on the Apache web server, and reports the rate at which each web site is receiving requests, the total number of requests processed and the number of requests that are successfully processed by each web site. In the process, this test also captures the response codes returned by each web site in real-time. By analyzing these codes, administrators can identify the web site that is encountering more number of errors which in turn will slow down the transactions.

Note:

This test will report metrics only when,

  • Each web site configured on the Apache web server is logging in a separate log file, and
  • File format of the log files is W3C, if the Apache web server is installed on a Windows operating system

Target of the test : An Apache web server

Agent deploying the test : An internal agent

Outputs of the test : One set of results for every website monitored.

Configurable parameters for the test
Parameter Description

Test Period

How often should the test be executed.

Host

The host for which the test is to be configured.

Port

The port to which the specified Host listens. By default, this is set to 80.

Access Log Path

By default, this test collects the required metrics by reading the access log file of the target Apache Web server. Specify the full path to the access log file in this text box. By default, this parameter is set to default indicating that the path to the access log file is "/var/log/httpd/access_log". Ensure that the eG agent install user accessing the log file is vested with read permission.

Log Format

Specify the format of the access log file in this text box. By default, this parameter is set to default indicating that the default format of the log file is %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"

Exclude URL Pattern

Specify a comma-separated list of transaction URL patterns that need to be excluded from the scope of monitoring. By default, this is set to none.

Max Requests in DD

By default, this parameter is set to 1000. This indicates that detailed diagnosis of the Total Requests processed and the Requests processed successfully measures will report detailed metrics for 1000 requests in a chosen measure period.

Show Total Requests DD

By default, this flag is set to No. This implies that by default, detailed metrics will not be available for the Total Requests processed measure of this test. To enable detailed diagnosis for this measure, you can set this flag to Yes.

Show Success Requests DD

By default, this flag is set to No. This implies that by default, detailed metrics will not be available for the Requests processed successfully measure of this test. To enable detailed diagnosis for this measure, you can set this flag to Yes.

Use Sudo

By default, the Use Sudo parameter is set to No. This indicates that, by default, the eG agent install user will be able to read the access log file and collect the required metrics. If the access log file could not be read by the eG agent install user, then, set this flag to Yes. This test will then report the metrics by executing the usr/bin/sudo command or /usr/sbin/sudo command.

However, in some highly secure environments, the eG agent install user may not have the permissions to execute this command directly. In such cases, do the following:

  1. Edit the sudoers file on the target host and append an entry of the following format to it:

    For instance, if the eG agent install user is eguser, then the entries in the sudoers file should be:

    eguser ALL=(ALL) NOPASSWD: /usr/bin/sudo

    eguser ALL=(ALL) NOPASSWD: /usr/sbin/sudo

  2. Finally, save the file.

Then, when configuring the test using the eG admin interface, set the Use Sudo parameter to Yes. This will enable the eG agent to use sudo to collect the required metrics from the access log file.

Sudo Path

By default, this parameter is set to none. This indicates that the eG agent would automatically discover the default location of the sudo command i.e. /usr/bin or /usr/sbin, when the Use Sudo flag is set to Yes. However, if the sudo command is installed in a different location in your environment, then specify that location in the Sudo Path text box.

DD Frequency

Refers to the frequency with which detailed diagnosis measures are to be generated for this test. The default is 1:1. This indicates that, by default, detailed measures will be generated every time this test runs, and also every time the test detects a problem. You can modify this frequency, if you so desire. Also, if you intend to disable the detailed diagnosis capability for this test, you can do so by specifying none against DD frequency.

Detailed Diagnosis

To make diagnosis more efficient and accurate, the eG Enterprise suite 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.
Measurements made by the test
Measurement Description Measurement Unit Interpretation

Requests

Indicates the rate of requests to this web site.

Requests/Sec

Compare the value of this measure across the web sites to identify the web site that is receiving more number of requests.

Errors

Indicates the percentage of error requests to this web site.

Percent

Compare the value of this measure across the web sites to identify the web site that is receiving more number of errors.

Aborts

Indicates the percentage of abort requests to this web site.

Percent

 

Data transmitted

Indicates the rate at which the data is transmitted to this web site.

KB/sec

 

Avg response time

Indicates the average time taken by this web site for responding to the requests it is receiving.

Seconds

Compare the value of this measure across the web sites to determine which web site is slow in responding to the requests.

Total requests processed

Indicates the total number of requests that are currently processed by this web site.

Number

This measure is a good indicator of current load on each web site.

The detailed diagnosis of this measure reveals the following details for each web site:

  • IP address of the client
  • Name, IP address and port of the server
  • Site Name
  • Amount of data sent and received in KB
  • Time taken to process the requests in seconds
  • Host number
  • Protocol version
  • Method type
  • Http status
  • Win32 status
  • Time stamp at which the log was created
  • Date and time of local host
  • User Agent
  • Cookie
  • Referrer
  • Protocol SubStatus

Requests processed successfully

Indicates the number of requests that are successfully processed by this web site.

Number

Ideally, a high value is desired for this measure.

This measure is a good indicator of current load on each website.

The detailed diagnosis of this measure reveals the following details for each web site:

  • IP address of the client
  • Name, IP address and port of the server
  • Site Name
  • Amount of data sent and received in KB
  • Time taken to process the requests in seconds
  • Host number
  • Protocol version
  • Method type
  • Http status
  • Win32 status
  • Time stamp at which the log was created
  • Date and time of local host
  • User Agent
  • Cookie
  • Referrer
  • Protocol SubStatus

Total redirection requests

Indicates the total number of requests that are redirected from this web site.

Number

A site returns 300 series response codes when it redirects requests to other pages. Redirection is performed for various reasons. For example, when the client browser may have to request a different page on the server or to repeat the request by using a proxy server.

These codes helps the client to ensure that a redirection to a different resource or URL should take place to complete the requests and access the desired resource.

Moved permanently

Indicates the number of requests that are permanently moved from this web site.

Number

When a request is permanently moved from the site, it returns the HTTP status code 301. This action is performed when the requested site has been permanently moved to a new URL.

Object moved

Indicates the number of requests that are temporarily moved from this web site.

Number

A 302 Found message is an HTTP response status code indicating that the requested resource has been temporarily moved to a different URL. Since the location or current redirection directive might be changed in the future, a client that receives a 302 response code should continue to use the original URL for future requests.

Not modified

Indicates the number of 304 redirection response codes returned by this web site.

Number

The HTTP 304 response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This means that the requested resource is already in the cache and the resource has not been modified since it was cached. Therefore, the client can use the cached copy of the resource, instead of downloading it from the server. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a If-None-Match or a If-Modified-Since header.

Temporary redirect

Indicates the number of 307 response codes currently returned by this web site.

Number

The HTTP 307 Temporary Redirect status response code indicates that the resource requested has been temporarily moved to the URL given by the Location headers.

Total 4xx requests

Represents the total number of HTTP 4xx (client error) codes currently returned by this web site.

Number

The 4xx HTTP status codes indicate that an error occurred and the client browser appears to be at fault. For example, the client browser may have requested a page that does not exist or may not have provided valid authentication information.

Bad requests

Indicates the number of HTTP 400 (bad requests) codes currently returned by this web site.

Number

The web site returns the HTTP 400 code when the request could not be understood by the server due to malformed syntax. This implies that the client should not repeat the request without modifications.

Total access denied requests

Indicates the total number of requests that are currently denied access to this web site.

Number

 

Logon failed

Indicates the number of requests that are currently denied access to this web site due to login failure.

Number

The login failure error occurs when the logon attempt is unsuccessful, probably because of a user name or password that is not valid.

Logon failed due to server configuration

Indicates the number of login attempts to this web site failed due to lack of authentication to server configuration.

Number

Ideally, the value of this measure should be zero.

The HTTP 401.2 status code indicates a problem in the authentication configuration settings on the server.

Authorization failed requests

Indicates the number of requests to this web site failed due to authorization failures.

Number

Ideally, the value of this measure should be zero.

Authorization errors will be reported when the requests are not authenticated by ACL on resource or filter or ISAPI/CGI application.

Forbidden errors

Indicates the number of forbidden errors currently encountered by this web site.

Number

Ideally, the value of this measure should be zero.

The website encounters forbidden errors for various reasons, for example, when the website receives too many requests from the same client.

Not found errors

Indicates the number of 404 errors returned by this web site.

Number

Ideally, the value of this measure should be zero.

The 404 error is reported when the server has not found anything matching the Request-URL. This error code is commonly used when the server does not wish to reveal exactly why the request has been refused, or when no other response is applicable.

Method not allowed

Indicates the number of 405 response codes returned by this web site.

Number

The 405 Method Not Allowed response code indicates that the method specified in the Request-Line is known by the origin server but is not supported by the target resource. To avoid this, administrators should include the response MUST an Allow header containing a list of valid methods for the requested resource.

Client browser not accept the MIME type

Indicates the number of 406 errors encountered by this web site.

Number

Ideally, the value of this measure should be zero.

The HTTP 406 (Not Acceptable client) error code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.

Request timed out

Indicates the number of 408 error codes returned by this web site.

Number

Ideally, the value of this measure should be zero.

The 408 Request Timeout error indicates that the request sent to the website server (e.g. a request to load a web page) took longer than the website's server was prepared to wait. In other words, your connection with the website "timed out".

Precondition failed

Indicates the number of 412 errors encountered by this web site.

Number

Ideally, the value of this measure should be zero.

The precondition given in one or more of the request-header fields evaluated to false when it was tested on the server. This response code allows the client to place preconditions on the current resource metainformation (header field data) and thus prevent the requested method from being applied to a resource other than the one intended.

Total internal server errors

Indicates the total number of server related errors encountered by this web site.

Number

Ideally, the value of this measure should be zero.

The server error messages are reported for a wide variety of server-side errors. For more information on the errors, you can refer event viewer logs and find out the reason why the errors occur.

Module or ISAPI errors

Indicates the number of 500.0 errors encountered by this web site.

Number

Ideally, the value of this measure should be zero.

The 500.0 error occurs when the ISAPIModule module is missing from the modules list for the website. ISAPI filters (modules) are libraries loaded by the IIS web server. Every incoming request and outgoing response passes through the filters, and they are free to perform any handling or translation they wish. They can be used for authentication, content transformation, logging, compression, and myriads of other uses.

Application is shutting down errors

Indicates the number of 500.11 errors encountered by this web site.

Number

Ideally, the value of this measure should be zero.

The website reports 500.11 HTTP error code when an application on the server is shutting down, and thus the received request cannot be processed by the website.

Application is busy restarting errors

Indicates the number of 500.12 errors encountered by this web site.

Number

Ideally, the value of this measure should be zero.

This error occurs when you tried to load an ASP page while IIS server was in the process of restarting the application. This error message will disappear when you refresh the page.

Web server busy errors

Indicates the number of 500.13 errors encountered by this web site.

Number

Ideally, the value of this measure should be zero.

Internal ASP errors

Indicates the number of 500.100 errors encountered by this web site.

Number

Ideally, the value of this measure should be zero.

These errors occur when a dynamic-link library (DLL) that is required by the Microsoft Data Access Components is not registered. To alleviate this kind of errors, administrators should register the DLL before the errors cause serious impacts on the key transactions.

Service unavailable errors

Indicates the number of 503 errors encountered by this web site.

Number

Ideally, the value of this measure should be zero.

The 503 errors occur when the application pool/service is stopped or mismatch in user identity settings is recorded. Administrators can fix these issues by restarting the stopped application pool/service and updating the user account settings.

Remote hosts

Indicates the number of remote hosts that are currently hitting this web site.

Number