Azure Service Bus Test

Azure Service Bus is a fully managed enterprise message broker with message queues and publish-subscribe topics (in a namespace).

Data is transferred between different applications and services using messages. Messages are sent to and received from queues. Queues store messages until the receiving application is available to receive and process them. You can also use topics to send and receive messages. While a queue is often used for point-to-point communication, topics are useful in publish/subscribe scenarios.

Typically, the Azure Service Bus is used to traffic critical business data such as sales or purchase orders. This means that if a service bus experiences errors/failures, the smooth transaction of business will be disrupted. To avoid this, it is essential to track the status and health of each service bus, capture abnormalities rapidly, and eliminate them before the business is adversely impacted.

Besides errors/failures, improperly set limits/quotas for a service bus can also hinder the flow of messages between applications/services. To avoid this, one needs to periodically check if the actual usage of a service bus aligns with the limits set, and if not, make changes to the service bus capacity accordingly.

The Azure Service Bus test helps with all of the above. This test auto-discovers the service buses that have been configured for the target subscription. For each service bus, the test then tracks the operational and provisioning status of that bus, and alerts administrators if either status is abnormal. Likewise, the test keeps an eye out for service bus errors and instantly captures and reports such errors, so that administrators can immediately initate corrective action. Additionally, the test also notifies administrators if requests to any service bus are throttled due to lack of sufficient processing capacity. This enables administrators to quickly identify service buses that require a capacity-reset.

Target of the Test: A Microsoft Azure Subscription

Agent deploying the test: A remote agent

Output of the test: One set of results for each Servie Bus configured for every resource group in the target Azure Subscription

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 a Microsoft Azure Subscription 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 a Microsoft Azure Subscription 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 Proxy Port

In some environments, all communication with the Azure cloud 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.

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.
Measures made by the test:

Measurement

Description

Measurement Unit

Interpretation

Status

Indicates the current status of this service bus.

 

The values reported by this measure and its numeric equivalents are mentioned in the table below:

Measure Value Numeric Value
Creating 1
Created 2
Activating 3
Enabling 4
Active 5
Disabling 6
Disabled 7
Soft Deleting 8
Soft Deleted 9
Removing 10
Removed 11
Failed 12
Unknown 0

Note:

By default, this measure reports the Measure Values listed in the table above to indicate the current status of the the service bus. In the graph of this measure however, the same is represented using the numeric equivalents only.

Use the detailed diagnosis of this measure to know the location of the service us, when it was created, when it was last modified, the pricing tier, and throughput units assigned to the bus.

Provisioning status

Indicates the current provisioning status of this service bus.

 

The values reported by this measure and its numeric equivalents are mentioned in the table below:

Measure Value Numeric Value
Succeeded 1
Updating 2
Error 3
Unknown 0

Note:

By default, this measure reports the Measure Values listed in the table above to indicate the current provisioning status of the service bus. In the graph of this measure however, the same is represented using the numeric equivalents only.

Name space type

Indicates the type of entities that the namespace of this service bus contains.

 

A namespace is a container for all messaging components (queues and topics). Multiple queues and topics can be in a single namespace, and namespaces often serve as application containers.

A Service Bus namespace is your own capacity slice of a large cluster made up of dozens of all-active virtual machines.

The values reported by this measure and its numeric equivalents are mentioned in the table below:

Measure Value Numeric Value

Description

Messaging 1

Indicates that the namespace contains messaging entities (queues, topics, or subscriptions)

Notification hub 2

Indicates that the namespace contains notification hubs

Mixed 3

Indicates that the namespace contains a mixture of messaging entities and notification hubs

Event hub 4

Indicates that the namespace contains event hubs

Relay

5

Indicates that the namespace contains Relays and Hybrid Connections

Note:

By default, this measure reports the Measure Values listed in the table above to indicate the namespace type. In the graph of this measure however, the same is represented using the numeric equivalents only.

Active connections

Indicates the current number of active connections to this service bus.

Number

By default, a Service Bus Namespace can support upto a maximum of 1000 concurrent connections. If the value of this measure exceeds this limit, then subsequent requests for additional connections are rejected, and an exception is received by the calling code.

Incoming requests

Indicates the number of requests flowing into this service bus.

Number

 

Successful requests

Indicates the number of requests to this service bus that were processed successfully.

Number

Ideally, the value of this measure should be equal to or close to the value of the Incoming requests measure. If the gap between the Incoming requests and Successful requests is large, it implies that many requests have failed or have been rejected/throttled. To know if requests have failed, take a look at the User errors and Server errors measures. If these measures report non-zero values, it implies that the service bus failed to process one/more requests because of errors. To know if request throttling has occurred, take a look at the value of the Throttled requests measure. If this measure reports a non-zero value, it clearly indicates that one/more requests have been throttled because of lack of adequate processing capacity.

Throttled requests

Indicates the number of requests to this service bus that were throttled.

Number

Request throttling generally occurs if usage exceeds capacity. If this measure reports a high value, you may want to reset quotas or allocate more resources to the service bus.

Server errors

Indicates the number of requests that could not be processed because of errors in this service bus.

Number

Ideally, the value of this measure should be 0.

User errors

Indicates the number of requests that could not be processed because of user errors in this service bus.

Number

Typically, the following types of errors are classified as user errors:

  • Client-side errors (In HTTP that would be 400 errors).

  • Errors that occur while processing messages, such as MessageLockLostException.

Ideally, the value of this measure should be 0.

Incoming messages

Indicates the number of events or messages sent to this service bus.

Number

 

Outgoing messages

Indicates the number of events or messages sent by this service bus.

Number

 

Message count in a Queue/Topic

Indicates the number of messages in a queue/topic in this service bus.

Number

 

Active message count in a Queue/Topic

Indicates the number of messages that are currently active in a queue/topic in this service bus.

Number

 

Message size

Indicates the average size of queues/topics in this service bus.

MB

In the Premium SKU, and the Standard SKU with partitioning enabled, the maximum queue or topic size is 80 GB.

If this limit is violated, subsequent incoming messages are rejected, and an exception is received by the calling code.