NetScaler HTTP Test

This test monitors HTTP connections handled by the NetScaler device, and reveals whether all HTTP requests have been responded to, and whether any incomplete requests/responses have been received/sent by the NetScaler.

Target of the test : A NetScaler VPX/MPX

Agent deploying the test : A remote agent

Outputs of the test : One set of results for each HTTP on the NetScaler appliance being monitored.

Configurable parameters for the test
Parameter Description

Test Period

How often should the test be executed.

Host

The IP address of the host for which the test is being configured.

NetScaler Username and NetScaler Password

To monitor a NetScaler device, the eG agent should be configured with the credentials of a user with read-only privileges to the target NetScaler device. Specify the credentials of such a user in the NetScaler Username and NetScaler Password text boxes.

Confirm Password

Confirm the NetScaler Password by retyping it here.

SSL

The eG agent collects performance metrics by invoking NITRO (NetScaler Interface Through Restful interfaces and Objects) APIs on the target NetScaler device. Typically, the NITRO APIs can be invoked through the HTTP or the HTTPS mode. By default, the eG agent invokes the NITRO APIs using the HTTPS mode. This is why, the SSL flag is set to Yes by default. If the target NetScaler device is not SSL-enabled, then the NITRO APIs can be accessed through the HTTP mode only. In this case, set the SSL flag to No.

Measurements made by the test
Measurement Description Measurement Unit Interpretation

Total rate of requests

Indicates the rate at which HTTP requests were received.

Number/Sec

These measures are effective indicators of the workload on the NetScaler device.

You can even compare the values of these measures to determine whether/not all requests have been responded to. Request processing bottlenecks can thus be isolated.

Total requests

Indicates the total number of HTTP requests (inclusive of HTTP v1.0 requests and HTTP v1.1 requests) that were received during the last measurement period.

Number

Total responses

Indicates the total number of HTTP responses (inclusive of HTTP v1.0 responses and HTTP v1.1 responses) that were received during the last measurement period.

Number

Total rate of responses

Indicates the rate at which HTTP responses were received.

Number/Sec

GETs requests

Indicates the number of requests that were received using the GET method during the last measurement period.

Number

 

Percent of GETs requests

Indicates the percentage of HTTP requests received using the GET method during the last measurement period.

Percent

 

POSTs requests

Indicates the number of requests that were received using the POST method during the last measurement period.

Number

 

Percent of POSTs requests

Indicates the percentage of HTTP requests received using the POST method during the last measurement period.

Percent

 

Other methods requests

Indicates the number of HTTP requests that were received using methods other than GET and POST during the last measurement period.

Number

Some of the well-defined HTTP methods are HEAD, PUT, DELETE, OPTIONS, and TRACE. User-defined methods are also counted.

Percent of Other methods requests

Indicates the percentage of HTTP requests received using methods other than the GET and POST methods during the last measurement period.

Percent

HTTP/1.0 requests

Indicates the number of HTTP v 1.0 requests received by the NetScaler device during the last measurement period.

Number

Since HTTP 1.0 connections are not capable of providing information about the client's ability to accept compressed data, which is one of the features of the NetScaler devices, it is important to be able to monitor the number of HTTP 1.0 connections relative to the total connections.

 

By comparing the values of these two measures, you can determine whether/not all HTTP/1.0 requests have been responded to by the NetScaler appliance.

HTTP/1.0 responses

Indicates the number of HTTP v 1.0 responses sent by the NetScaler device during the last measurement period.

 

HTTP/1.1 requests

Indicates the number of HTTP v 1.1 requests received by the NetScaler device during the last measurement period.

Number

By comparing the values of these two measures, you can determine whether/not all HTTP/1.1 requests have been responded to by the NetScaler appliance.

HTTP/1.1 responses

Indicates the number of HTTP v 1.1 responses sent by the NetScaler device during the last measurement period.

Number

Content-length requests

Indicates the number of HTTP requests with the Content-length field of the HTTP header set during the last measurement period.

Number

NetScaler compression module treats server response as a data stream. It accumulates server response packets until certain conditions are met. Whence the conditions are met, a batch job would be triggered to compress the accumulated data and the compressed data would be output subsequently.

For a server response that only triggers a single batch job, NetScaler would output a Content-length response. This is same for both HTTP 1.0 and 1.1 client types.

When an HTTP client is reading a response message from a server or when an HTTP server is reading a request from a client, the client/server (as the case may be) needs to know when it has reached the end of the message. This is particularly important with persistent (keep alive) connections, because a connection can only be re-used by another HTTP transaction after the request message has been read and the response message has been fully received. One of the ways by which the HTTP client/server indicates the end of a request/response message is by using the Content-Length Header. The length of the content after the request/response headers can be specified in bytes with the Content-Length header.

Using the values of these measures, you can figure out how many large requests were processed and responded to by the NetScaler device, and thus assess the workload on the device.

 

Content-length responses

Indicates the number of HTTP responses that were sent with the Content-length field of the HTTP header set during the last measurement period.

Number

Percent of content-length responses:

Indicates the percentage of responses sent out by the NetScaler device with the Content-length field of the HTTP response header set.

Percent

Chunked requests

Indicates the number of HTTP requests with the Transfer-Encoding field of the HTTP header set to chunked during the last measurement period.

Number

When an HTTP client is reading a response message from a server or when an HTTP server is reading a request from a client, the client/server (as the case may be) needs to know when it has reached the end of the message. This is particularly important with persistent (keep alive) connections, because a connection can only be re-used by another HTTP transaction after the request message has been read and the response message has been fully received. One of the ways by which the HTTP client/server indicates the end of a request/response message is by using Chunked Encoding. Chunked encoding allows HTTP messages to be broken up into several parts. Chunking is most often used by the server for responses, but clients can also chunk large requests. If the Transfer-Encoding field of an HTTP request/response is set to chunked, then the client/server (as the case may be) starts sending the HTTP request/response before knowing its total length. The client/server then breaks the request/response into chunks and sends them in sequence, inserting the length of each chunk before the actual data. The message ends with a chunk of size zero.

Using the values of these measures, you can figure out how many large requests were processed and responded to by the NetScaler device, and thus assess the workload on the device.

Chunked responses

Indicates the number of HTTP responses that were sent with the Transfer-Encoding field of the HTTP header set to chunked during the last measurement period.

Number

Percent of chunked responses

Indicates the percentage of HTTP responses that were sent with the Transfer-Encoding field of the HTTP header set to chunked during the last measurement period.

Percent

Multi-part responses

Indicates the number of HTTP multi-part responses sent during the last measurement period.

Number

In multi-part responses, one or more entities are encapsulated within the body of a single message.

 

 

Percent of multi-part responses

Indicates the percentage of HTTP multi-part responses that were sent during the last measurement period.

Percent

FIN-terminated responses

Indicates the number of FIN-terminated responses sent during the last measurement period.

Number

In FIN-terminated responses, the server finishes sending the data and closes the connection.

For large server response (or any other condition) that would trigger multiple compression batch jobs, NetScaler would output FIN terminated response without Content-Length header (RFC compliant). Because compression is performed on batch basis, NetScaler can’t determine length of compressed data until the last batch is done. Using FIN-terminated response, instead of chunked encoding, maximizes NetScaler’s compatibility with HTTP 1.0 client.

Percent of FIN-terminated responses

Indicates the percentage of FIN-terminated responses that were sent during the last measurement period.

Percent

Request data received

Indicates the amount of HTTP data received during the last measurement period.

MB

 

Request data transmitted

Indicates the amount of HTTP data transmitted during the last measurement period.

MB

 

Response data received

Indicates the amount of data received as responses during the last measurement period.

MB

 

Response data transmitted

Indicates the amount of data sent as responses during the last measurement period.

MB

 

Incomplete headers

Indicates the number of HTTP requests and responses that were received with the HTTP header spanning more than one packet, during the last measurement period.

Number

Ideally, the value of this measure should be 0. A high value for this measure may warrant an investigation. You may begin your investigation by determining the type of headers that were incomplete most often - the request headers or response headers?  For this, compare the values of the Incomplete request headers and Incomplete response headers measures.

Incomplete request headers

Indicates the number of HTTP requests that were received with the HTTP header spanning more than one packet, , during the last measurement period.

Number

Incomplete response headers

Indicates the number of HTTP responses that were sent with the HTTP header spanning more than one packet, during the last measurement period.

Number

HTTP 500 server-busy responses:

Indicates the current status of HTTP responses received from the NetScaler appliance.

Number

Response status codes beginning with the digit "5" indicate cases in which the HTTP server - in this case. the NetScaler appliance - is aware that it has encountered an error or is otherwise incapable of performing the request. 

Large/Invalid messages

Indicates the number of large or invalid requests and responses received during the last measurement period.

Number

Ideally, the values of these measures should be 0.

Large/Invalid chunk requests

Indicates the large or invalid requests received in which the Transfer-Encoding field of the HTTP header has been set to chunked.

Number

Ideally, the values of these measures should be 0.

Large/Invalid content-length

Large or invalid requests received in which the Content-length field of the HTTP header has been set.

Number

Number of requests received over SPDYv2 and SPDYv3

Indicates the number of requests over SPDYv2 and SPDYv3 during the last measurement period.

Number

SPDY (pronounced "speedy") is a deprecated open-specification communication protocol that was developed primarily at Google for transporting web content. SPDY manipulates HTTP traffic, with particular goals of reducing web page load latency and improving web security. SPDY achieves reduced latency through compression, multiplexing, and prioritization, although this depends on a combination of network and website deployment conditions.

Number of requests received over SPDYv2

Indicates the number of requests received over SPDYv2 during the last measurement period.

Number

 

Number of requests received over SPDYv3

Indicates the number of request received over SPDYv3 during the last measurement period.

Number