API Management Services by APIs Test

Microsoft Azure APIM (Application Programming Interface Management) is a hybrid, multicloud management platform for APIs across all environments. Microsoft Azure API Management allows you to manage multiple APIs under multiple services and make it available to your customers. Since such APIs 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 APIs managed by the Azure API Management Services, swiftly identify those APIs that are experiencing availability, operational, or overall performance issues, and rapidly initiate measures to eliminate the bottleneck. The API Management Services by APIs test helps administrators in this regard.

By continuously tracking the status of each API managed by the Azure API Management Services, this test points administrators to APIs that are not running. HTTP responses sent by the API are also scrutinized and HTTP errors promptly captured and reported, so that administrators can quickly figure out why an API is unavailable.

Also, by monitoring the responsiveness of APIs to web requests, the test pinpoints APIs that are responding slowly to these requests and why - is it owing to a slow backend server? is it due to heavy request load on the APIs? or is poor API throughput the bottleneck?

Target of the test : Microsoft Azure API Management

Agent deploying the test : An external agent

Outputs of the test : One set of results for each Managed Service:API in the target Microsoft Azure API Management.

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.

Subscription ID

Specify the GUID which uniquely identifies the Microsoft Azure Subscription to be monitored. To know the ID that maps to the target subscription, do the following:

  1. Login to the Microsoft Azure Portal.

  2. When the portal opens, click on the Subscriptions option (as indicated by Figure 1).

    Figure 1 : Clicking on the Subscriptions option

  3. Figure 2 that appears next will list all the subscriptions that have been configured for the target Azure AD tenant. Locate the subscription that is being monitored in the list, and check the value displayed for that subscription in the Subscription ID column.

    Figure 2 : Determining the Subscription ID

  4. Copy the Subscription ID in Figure 2 to the text box corresponding to the SUBSCRIPTION ID parameter in the test configuration page.

Tenant ID

Specify the Directory ID of the Azure AD tenant to which the target subscription belongs. To know how to determine the Directory ID, refer to Configuring the eG Agent to Monitor Microsoft Azure API Management Using Azure ARM REST API.

Client ID, Client Password, and Confirm Password

To connect to the target subscription, the eG agent requires an Access token in the form of an Application ID and the client secret value. For this purpose, you should register a new application with the Azure AD tenant. To know how to create such an application and determine its Application ID and client secret, refer to Configuring the eG Agent to Monitor Microsoft Azure API Management Using Azure ARM REST API. Specify the Application ID of the created Application in the Client ID text box and the client secret value in the Client Password text box. Confirm the Client Password by retyping it in the Confirm Password text box.

Proxy Host and ProxyPort

In some environments, all communication with the Azure cloud could be routed through a proxy server. In such environments, you should make sure that the eG agent connects to the cloud via the proxy server and collects metrics. To enable metrics collection via a proxy, specify the IP address of the proxy server and the port at which the server listens against the Proxy Host and Proxy Port parameters. By default, these parameters are set to none, indicating that the eG agent is not configured to communicate via a proxy, by default.

Proxy Username, Proxy Password and Confirm Password

If the proxy server requires authentication, then, specify a valid proxy user name and password in the Proxy Username and Proxy Password parameters, respectively. Then, confirm the password by retyping it in the Confirm Password text box.

Slow response duration in seconds

Specify the time limit in the Slow response duration in seconds text box for the request to get responded by the API. If the time taken for the response by the API is more than the set limit, then those responses are categorized as slow responses.

Slow backend response duration in seconds

Specify the time limit in the Slow backend response duration in seconds text box for the request to get responded at the backend of the API. If the time taken for the response at the backend of the API is more than the set limit, then those responses are categorized as slow responses.

Resource Group

A resource group is a container that holds related resources for an Azure solution. The resource group can include all the resources for the solution, or only those resources that you want to manage as a group. Specify the name of the particular Resource Group which is a part of the Azure API Management to be managed in the Resource Group text box.

APIM Service Name

The Azure API Management allows you to manage multiple APIs under multiple services and reports the specific metrics for all APIs under each service. Specify the name of such Azure API Management Service in the APIM Service Name text box.

Show all API instances

To show all the API Instances capability in this test for a particular service, choose the Yes option. To disable the capability, click on the No option.

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 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

Total requests

Indicates the total number of requests handled by this API.

Number

 

Backend requests

Indicates the number of Backend requests handled by this API.

Number

 

Gateway requests

Indicates the number of Gateway requests handled by this API.

Number

 

Total requests failed recently

Indicates the total number of requests that recently failed in this API.

Number

Ideally, the value of this measure should be low.

Gateway errors

Indicates the number of Gateway errors encountered by this API.

Number

Ideally, the value of this measure should be zero.

Requests failed due to backend

Indicates the number of requests failed at the backend of this API.

Number

Ideally, the value of this measure should be low.

Overall request latency for API host

Indicates the overall time taken for request to be processed and a response to be delivered through this API host.

Seconds

Ideally, the value of this measure should be low.

 

 

Total backend latency

Indicates the time taken by the request to be processed at Backend of this API.

Seconds

Total client latency

Indicates the time taken by the request to be processed by this API at client's end.

Seconds

Capacity

Indicates the percentage of requests handled by this API.

Percent

Ideally, the value of this measure should be high.

Bandwidth consumed

Indicates the amount of bandwidth consumed by this API.

MB

Compare the value of this measure across APIs to know which API is consuming bandwidth excessively.

Cache hit ratio

Indicates the ratio of failed cache to the total number of requests handled by this API.

Percent

A lesser value is a cause for concern, as it implies that the cache has failed to service a large majority of requests.

Successful requests

Indicates the percentage of successful requests served by this API.

Percent

Ideally, the value of this measure should be high.

Slow requests

Indicates the percentage of requests that were slowly processed in this API.

Percent

Ideally, the value of this measure should be low.

 

Number of slow requests

Indicates the number of requests that were slowly processed in this API.

Number

HTTP successes

Indicates the number of times the HTTP requests were successful in this API.

Number

 

HTTP redirections

Indicates the number of times the HTTP requests were redirected to this API.

Number

 

HTTP client errors

Indicates the total number of HTTP client errors encountered by this API.

Number

Ideally, the value of this measure should be zero.

HTTP server errors

Indicates the number of HTTP server errors encountered by this API.

Number

HTTP unauthorized errors

Indicates the number of HTTP 401 errors i.e., unauthorized errors encountered by this API.

Number

HTTP forbidden errors

Indicates the number of HTTP forbidden errors encountered by this API.

Number

HTTP not found errors

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

Number

HTTP not acceptable errors

Indicates the number of HTTP 406 errors encountered by this API.

Number

HTTP successes utilization

Indicates the percentage of HTTP requests that were successful in this API.

Percentage

 

HTTP redirections utilization

Indicates the percentage of HTTP requests that were redirected to this API.

Percentage

 

HTTP client errors utilization

Indicates the percentage of HTTP client errors encountered by this API.

Percentage

Ideally, the value of this measure should be zero.

HTTP server errors utilization

Indicates the percentage of HTTP server errors encountered by this API.

Percentage

HTTP forbidden errors utilization

Indicates the percentage of HTTP forbidden errors encountered by this API.

Percentage

HTTP not found errors utilization

Indicates the percentage of HTTP 404 errors i.e, HTTP not found errors encountered by this API.

Percentage

HTTP not acceptable errors utilization

Indicates the percentage of HTTP 406 errors that were encountered by this API.

Percentage

Cache hits

Indicates the number of requests served by this API.

Number

Ideally, the value of this measure should be high.

Cache misses

Indicates the number of requests that were not served by this API.

Number

Ideally, the value of this measure should be 0 or very low.

HTTP unauthorized errors utilization

Indicates the percentage of HTTP 401 errors i.e., unauthorized errors encountered by this API.

Percentage

The detailed diagnosis of these measures lists the details like Time Generated, Correlation id, HTTP method, API URL, Response code, Request Size, Response Size, Cache and IP Address.

 

 

Failed requests not related to backend

Indicates the number of failed requests that were not related to Backend of this API.

Number

Failed requests

Indicates the percentage of requests failed in this API.

Percent