URL monitor

The URL Monitor provides a convenient and easy way to monitor availability and performance-related data for a specific HTTP URL. It supports authentication, proxies, and redirection. Rudimentary verification of returned HTTP content is available.

It periodically sends an HTTP request according to its configuration to a specific HTTP server, and waits until it receives the HTTP responses from the server. If a timeout occurs while waiting for the HTTP response, the URL is classified as unreachable. A URL is also reachable if the HTTP server returns a 404 response that indicates the specific URL cannot be resolved. Use content verification features to filter such responses.

Note

See URL Monitor Plugin Community Edition for functionality extension.

Important: The URL Monitor Plugin Community Edition is only supported by the Community, not by AppMon.

Setup

To add a new URL Monitor to a System Profile, open the System Profile Preferences, select Monitors, click Create, and select URL Monitor. Specify a name and a description for the Monitor, then proceed with the settings as described below.

Basic Configuration

Basic configuration of a URL Monitor consists in the definition of a path and target host(s), to point to a specific resource on a specific HTTP server(s). All other configuration parameters are set to default values that match most static HTTP URLs. Use the configuration parameter Path to specify the URL that should be monitored. The most convenient way to do this is to navigate to the specific URL in a web browser and paste the path from the address bar.

Select host(s) that should be the target(s) of the monitor

A Monitor can be configured for multiple target hosts. Only one configuration is necessary; it is executed for all configured machines. This is especially useful in cluster environments that feature many similarly configured hosts.

Add Single hosts, hostgroups, or sites by clicking the + icon. Create a new host if the desired host is not shown. The Monitor runs for all contained hosts if you add a hostgroup or site.

Optionally, add an intersection of hostgroups or sites. The Monitor runs for all hosts that belong to all selected groups or sites. If the configuration would resolve a single host more than once (if Host1 is also contained in Hostgroup1), the Monitor is only executed once per host.

You can also add target hosts using the Server REST interface. The required POST request is located in the Tasks and Monitors group. The request documentation is based on the Swagger specification and embedded to the request form.

See Infrastructure for more information on how to manage hosts and hostgroups.

Examples

Configured Hosts As Shown in Hosts Table Monitor
Host1 Host1
Host1 Host2 Host1 and Host 1
Hostgroup 1 Host2 All hosts from Hostgroup 1 and also Host 2
Hostgroup 1 Hostgroup 2 All hosts from Hostgroup 1 and also Hostgroup 2
Hosts belonging to Hostgroup 1, Hostgroup 2 Host 1 All hosts that are both in Hostgroup 1 and Hostgroup 2 (an intersection of Hostgroup 1 and Hostgroup 2), plus Host 1

HTTP request configuration

Use the Method configuration parameter to specify an HTTP request method: GET, HEAD, and POST. If you select POST, an additional configuration parameter, POST Data, becomes available. This parameter can be used to simulate HTTP form data.

Use the configuration parameter HTTP version to select HTTP 1.1 or HTTP 1.0 and to set the HTTP protocol version that is used to communicate with the HTTP server.

You can specify a user agent string in the User-Agent configuration parameter.

The Max. redirects configuration parameter defines the number of redirects that are followed to retrieve the HTTP content.

Content verification

The URL Monitor provides basic verification of the received HTTP content.

If the configuration parameter Match Content is set to Success if Match or Error if Match, an additional configuration parameter Search String is available. Use Search String to specify a string for which the received HTTP content is scanned.

The result of the content verification is provided by ContentVerified measures. It is set to 1 if the provided search string is found and Match Content is set to Success if Match, or if the provided search string is not found and Match Content is set to Error if Match. Otherwise, ContentVerified is set to 0.

If Match Content is set to Expected size in bytes, an additional configuration parameter Bytes is available to specify the expected size of the HTTP response in bytes. If the size of the received response is equal to the expected size, ContentVerified is set to 1, otherwise it is set to 0.

Authorization and proxy

The URL Monitor provides configuration parameters to specify HTTP server credentials, use of an HTTP proxy, and HTTP proxy credentials.

If the configuration parameter Server authorization is set to Basic, three additional configuration parameters, Server username, Server password and Preemptive server authentication, are available to specify user name and password, which are used to log on to the HTTP server. The monitor uses these credentials for Basic HTTP Authentication. If Preemptive server authentication is enabled, the URL Monitor sends the authentication information in the initial request without waiting for an HTTP 401 Server answer. This would be speed up the complete request a little bit and it is preferred to be enabled.

If the configuration parameter Server authorization is set to  NTLM, two additional configuration parameters, Server username and Server password, are available to specify user name and password, which are used to log on to the HTTP server. The monitor uses these credentials for NTLM HTTP Authentication.

Enabling Proxy provides the three additional configuration parameters Proxy host, Proxy port, and Proxy authorization. Proxy host and Proxy port identify a specific proxy service in the network, and Proxy authorization can be used to define a Proxy username, Proxy password and Preemptive proxy authentication if the selected proxy service requires authentication.

Measures

The URL Monitor provides a fixed set of Measure that describe performance, size, and validation of single URL requests.

  • ConnectionCloseDelay: Required time to close the server connection.
  • ConnectionTimedout: 1 if a connection timeout occurred. This happens, if the requested server can't be reached while initiating the connection.
  • ContentVerified: 1 if content verification was successful, 0 if not. No value is provided if content verification is disabled.
  • FirstResponseDelay: Time elapsed between sending the URL request and receiving the first byte of the response.
  • HeaderSize: Size of the response header.
  • HostReachable: 1 if the HTTP server sent a response in time, 0 if not.
  • HttpStatusCode: HTTP status code received from the server mapped to a number.
  • ResponseCompleteTime: Time elapsed between sending the URL request and receiving the last byte of the response.
  • ResponseSize: Size of the HTTP response.
  • SocketTimedout: 1 if a socket timeout occurred. This happens if the connection is established, but a timeout occurs during further communication.
  • Throughput: Average network throughput achieved during retrieval of HTTP response.