JSON Web Analysis Test
This test issues a HTTP GET request to the web URLs through which Azure hosted web applications/services expose status information as JSON responses and parses the JSON response. This test captures each JSON element parsed in the JSON response returned by the configured URLs and reports status of each JSON element. In addition, this also captures availability of the Web URL and reports against the Summary descriptor. This way, the test promptly alerts administrators if the JSON response returned by the Web URL is invalid or if the response is not received. The detailed diagnostics helps administrators drill down to the actual error message in case of failure.
Target of the test : A host server
Agent deploying the test : An external agent
Output of the test : One set of results for each JSON element if the configured URL returned a JSON response. In addition, one set of results for the Summary descriptor if the configured URL returned no responses.
Parameter | Description |
---|---|
Test Period |
How often should the test be executed. |
Host |
Specify the IP address of the target host in this text box. |
Port |
Enter the port number to which the specified host listens. |
URL |
This test emulates a user accessing a specific web page(s) on the target web server to determine the availability and responsiveness of the server. To enable this emulation, you need to configure the test with the URL of the web page that it should access. Specify this URL against the URL parameter. If required, you can even configure multiple URLs – one each for every web page that the test should attempt to access. If each URL configured requires special permissions for logging in, then, you need to configure the test with separate credentials for logging into every URL. Likewise, you need to provide instructions to the test on how to validate the content returned by every URL, and also set an encoding format for each URL. To enable administrators to easily configure the above per URL, eG Enterprise provides a special interface. To access this interface, click on the encircled ‘+’ button alongside the URL text box in the test configuration page. To know how to use this special interface, refer to Configuring Multiple URLs for Monitoring. |
CookieFile |
Indicate whether any cookies being returned by the web server need to be saved locally and returned with subsequent requests against this parameter. |
Proxy Host |
Provide the host on which a web proxy server is running (in case a proxy server is to be used) |
Proxy Port |
Specify the port number on which the web proxy server is listening |
Proxy user name and Proxy password |
If the proxy server requires authentication, then, specify a valid proxy user name and password in the Proxy user name and Proxy password parameters, respectively. By default, these parameters are set to none , indicating that the proxy sever does not require authentication by default. |
Confirm password |
Confirm the Proxy password by retyping it here. |
Timeout |
Here, specify the maximum duration (in seconds) for which the test will wait for a response from the server. The default Timeout period is 30 seconds. |
No of Retries |
Sometimes, this test may not be able to access one or more URLs configured against the URL parameter in the first attempt due to various reasons such as poor network connectivity, server busy, etc. In such a case, this test will not report measures related to connectivity and responsiveness of the URLs. For the test to report measures continuously, you can use the No of Retries parameter. In the No of Retries text box, specify the number of times that the test should retry accessing the URLs after the first attempt failed. For instance, if you set 2 as the value of this parameter, then, this test will retry accessing the configured URLs for 2 times after the first attempt failed. |
Sleep Secs |
Specify the time in seconds that this test should take between the retry attempts. By default, this set to 1 second. |
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:
|
Measurement | Description | Measurement Unit | Interpretation | ||||||
---|---|---|---|---|---|---|---|---|---|
Status |
Indicates the current status of this JSON element of this URL.
|
|
The values reported by this measure and its numeric equivalents are mentioned in the table below:
Note: By default, this measure reports the Measure Values listed in the table above to indicate the current state of this JSON element. The graph of this measure however, is represented using the numeric equivalents only - 0 and 1. |
||||||
Response code |
Indicates the response code returned by this URL. |
|
This measure is reported only for the Summary descriptor. |
||||||
Response received? |
Indicates whether/not the response is received from this URL. |
|
This measure is reported only for the Summary descriptor. The values reported by this measure and its numeric equivalents are mentioned in the table below:
Note: By default, this measure reports the Measure Values listed in the table above to indicate the current state of this JSON element. The graph of this measure however, is represented using the numeric equivalents only - 0 and 1. |
||||||
Valid json? |
Indicates whether/not the received JSON response is valid. |
|
This measure is reported only for the Summary descriptor. The values reported by this measure and its numeric equivalents are mentioned in the table below:
Note: By default, this measure reports the Measure Values listed in the table above to indicate the whether this JSON response is valid or not. The graph of this measure however, is represented using the numeric equivalents only - 0 and 1. |
Use the detailed diagnosis of the Status measure to find out the response description of each JSON element.
Figure 3 : The detailed diagnosis reported by the Status measure
Using the detailed diagnosis of the Response received? measure, administrators can find out the response received for each web URL.
Figure 4 : The detailed diagnosis reported by the Response received? measure
Configuring Multiple URLs for Monitoring
By default, the JSON Web Analysis test will be configured with the URL of the home page of the web server being monitored. To configure additional URLs, do the following:
-
Click on the encircled ‘+’ button alongside the URL text box in Figure 5.
-
Figure 6 then appears. To add another URL, click the Add More button in Figure 6.
-
Another URL specification section will appear. Specify the following in that section:
-
Name: Specify a unique name by which the URL you will be specifying shortly will be referred to across the eG user interface. This is the name that will appear as the descriptor of this test.
-
URL: Enter the URL of the web page that this test should access.
-
Username and Password: These parameters are to be set only if a specific user name / password has to be specified to login to the web page (i.e., URL ) that you have configured for monitoring. In this case, provide valid login credentials using the Username and Password text boxes. If the URL configured for monitoring supports ‘Anonymous user access’, then these parameters will take either of the following values:
-
A valid Username and Password for the configured URL
-
none in both the Username and Password text boxes of the configured URL, if no user authorization is required.
Some web servers however, support NTLM (Integrated Windows) authentication, where valid login credentials are mandatory. In other words, a none specification will not be supported by such web servers. Therefore, in this case, against each configured URL, you will have to provide a valid Username in the format:domainname\username, followed by a valid Password.
Please be sure to check if your web site requires HTTP authentication while configuring this parameter. HTTP authentication typically involves a separate pop-up window when you try to access the page. Many sites use HTTP POST for obtaining the user name and password and validating the user login. In such cases, the username and password have to be provided as part of the POST information.
-
-
Content: The Content parameter has to be configured with an instruction:value pair that will be used to validate the content being returned by the test. If the Content value is None, no validation is performed. On the other hand, if you pick the Include option from the Content list, it indicates to the test that for the content returned by the web server to be valid, the content must include the specified value (a simple string search is done in this case). This value should be specified in the adjacent text box. Similarly, if the Exclude option is chosen from the Content drop-down, it indicates to the test that the server’s output is valid if it does not contain the value specified in the adjacent text box. The Include or Exclude value you specify in the text box can include wildcard characters. For example, an Include instruction can be *Home page*.
-
Encoding: Sometimes the eG agent has to parse the URL content with specific encoding other than the default (ISO-8859-1) encoding. In such a case, specify the type of encoding using which the eG agent can parse the URL content in the Encoding text box. By default, this value is none.
-
Private Key File Path and Password: SSL-enabled web sites are typically secured by a private key, public key, or a public-private key pair. If the web page configured for this test is SSL-enabled – i.e., if an HTTPS URL is specified against URL – and the contents of this web page can only be accessed using a private key, then the full path to the private key file will have to be provided against Private key file path and the password of the private key file should be specified against Password. If no such private key protects the contents of the configured URL, then set the Private Key File Path and its Password to none.
-
Method: Using this parameter, you can indicate how you want the eG agent to execute this test. If you want the eG agent to always run this test using the Java executable alone, then pick the Only Java option from the Method drop-down. Likewise, if you want the eG agent to always run this test using the cURL utility alone, then choose the Only cURL option from the Method drop-down. On the other hand, if you want the eG agent to automatically detect what methodology was successful in reporting metrics for this test during the last measure period, and employ the same methodology to run the test during the current measure period, then you need to go with the default selection - i.e., Auto-detect. This default setting is useful in environments where neither methodology (Java or cURL) can be relied upon to continuously report metrics for this test. In other words. the default setting is ideal for environments where the Java executable may have been successful in collecting metrics a few times, and the cURL utility may have been successful at other times.
-
System Properties - Property and Value : Some web pages (URLs) configured for monitoring may have been designed to allow access for only those requests that have certain specific properties enabled. For instance, web pages of an SSL-enabled web site may have been designed to support TLS v1.3 requests alone. In such a case, you will have to instruct the test to send connection requests to the configured URL over the TLS v1.3 protocol alone; if not, the test will fail. For this, you can use the Property and Value text boxes in the System Properties section. Specify the request property that the test needs to look up, in the Property text box. In the Value text box, enter the value this property should be set to, so that the eG agent is allowed access to the configured web page. In the case of the above example, you will have to specify -Dhttps.protocol in the Property text box and TLSv1.3 in the Value text box. You can even provide a comma-separated list of values in the Value text box. For example, if the web page supports multiple versions of the TLS protocol, then the Value specification will be: TLSv1.1,TLSv1.2,TLSv1.3. You can even configure more than one Property:Value pair, if the configured URL supports multiple properties. To add another pair, click on the encircled '+' button adjacent to the Value text box.
-
- Similarly, you can add multiple URL specifications. To remove a URL specification, click on the encircled ‘-‘ button corresponding to it. To clear all URL specifications, click the Clear button in Figure 6. To update all the changes you made, click the Update button.
-
Once Update is clicked, you will return to the test configuration page (see Figure 7). The url text box in the test configuration page will display just the Names – i.e., the unique display names – that you may have configured for the multiple URLs, as a comma-separated list. To view the complete URL specification, click the encircled ‘’+’ button alongside the url text box, once again.
Figure 7 : The URL text box displaying only the display names of the configured URLs as a comma-separated list