Overview


Information in this article is related to using CloudMonix for monitoring Azure Service Bus queues and topics.


The article covers the following topics:

  • common use cases where CloudMonix can help with monitoring and automation

  • what is needed to connect to and monitor Azure Service Bus

  • what metrics can be tracked, visualized and monitored

  • what automated actions can be executed by CloudMonix


Why use CloudMonix for Azure Service Bus?

Popular usages of CloudMonix include the following examples:



Configuration

CloudMonix needs to connect to ASB queues and topics directly to query for active and dead-lettered message counts.  For statistical data, it will use either Classic or ARM API, depending on which deployment model was used to create ASB resource. Refer to the article about differences between ARM and Classic API's for more details.


Azure Service Bus monitoring can be configured either via Setup Wizard or by using the “Add New” button in the dashboard. It’s highly recommended to use Setup Wizard when configuring permissions for the first time, as that will simplify authorization. Learn more about authorizing with Setup Wizard here.


Special note for Azure Service Bus Topics: after initially adding the ASB Topics namespace for monitoring into CloudMonix, manual user-action needs to be taken to instrument metrics and alert for specific topics that need to be monitored. Learn more here.


In order to monitor active messages and dead-letters CloudMonix requires Shared Access Key with Manage claims on the Azure Service Bus Namespace level.

shared%20key.png



The key can be generated in the Azure Management Portal:




Metrics


Every diagnostic data point that CloudMonix retrieves from the monitored resource is considered a metric in CloudMonix. Refer to the Metrics article to learn more about metrics in general.


AzureServiceBusQueueStatistics and AzureServiceBusTopicSubscriptionStatistics metrics can be currently obtained only when using the Classic API, as the required data is not provided by the ARM API. CloudMonix will use either Classic or ARM API for monitoring Azure Service Bus, depending on which deployment model was used for the particular ASB resource. Refer to the article about differences between ARM and Classic API's for more details.


CloudMonix provides default templates for Azure Service Bus, which can be customized:

  • Sample configuration for Service Bus Queues

  • Sample configuration for Service Bus Topics



The metrics can be added, removed and customized in the Metrics tab of the Azure Service Bus Queues and Azure Service Bus Topics resource configuration dialogs.


Built-in Azure Service Bus Metrics


ResourceStatus


Identifies the last state of the monitored service. This is a critical metric that is captured for most types of resources that CloudMonix tracks. It is used for Uptime reports and should not be removed.

  • Available for Queues and Topics.

  • Data Type: string

  • Possible values: Ready, Down

  • Included in sample profile:  yes

    • In both default templates as a metric called Status

  • Included in default alerts: yes

    • In the template for Service Bus Topics as an alert called ResourceOutage


Statuses are determined according to the following rules:

  • Ready - CloudMonix can connect to all monitored queues or topics within a namespace

  • Down - there are errors when CloudMonix attempts to connect to some queues or topics within the namespace.



AzureServiceBusActiveMessageCount


Tracks the number of active messages in the monitored queue or topic subscriptions.

  • Available for Queues and Topics (tracked per topic/subscription).

  • Data Type: int

  • Included in sample profile: yes

    • In the template for Service Bus Topics as a metric called ExampleSubscriptionActiveMessageCount (not enabled, requires providing which topic or subscription should be monitored)

  • Included in default alerts: no



AzureServiceBusActiveMessageCountBatch


Tracks the number of active messages in all queues or topic subscriptions. ODATA filter may be used for filtering only certain queues or subscriptions.

  • Available for Queues and Topics (tracked per topic).

  • Data Type: int

  • Included in sample profile: yes

    • In the template for Service Bus Queues as a metric called Messages

    • In the template for Service Bus Topics as a metric called ExampleTopicActiveMessageCount (not enabled, requires providing which topic or subscription should be monitored)

  • Included in default alerts: no



AzureServiceBusDeadLetterMessageCount


Tracks the number of deadlettered messages in the monitored queue or topic subscriptions.

  • Available for Queues and Topics (tracked per topic/subscription).

  • Data Type: int

  • Included in sample profile: yes

    • In the template for Service Bus Topics as a metric called ExampleSubscriptionDeadLetterCount (not enabled, requires providing which topic or subscription should be monitored)

  • Included in default alerts: no



AzureServiceBusDeadLetterMessageCountBatch


Tracks the number of deadlettered messages in all queues or topic subscriptions. ODATA filter may be used for filtering only certain queues or subscriptions.

  • Available for Queues and Topics (tracked per topic).

  • Data Type: int

  • Included in sample profile: yes

    • In the template for Service Bus Queues as a metric called DeadLetters

  • Included in default alerts:  yes

    • In the template for Service Bus Queues as an alert called DeadLetters Detected

    • In the template for Service Bus Topics as a metric called ExampleTopicDeadLetterCount (not enabled, requires providing which topic or subscription should be monitored)



AzureServiceBusScheduledMessageCount


Tracks the number of scheduled messages in the monitored queue or topic subscriptions.

  • Available for Queues and Topics (tracked per topic/subscription).

  • Data Type: int

  • Included in sample profile: no

  • Included in default alerts: no



AzureServiceBusScheduledMessageCountBatch


Tracks the number of scheduled messages in all queues or topic subscriptions. ODATA filter may be used for filtering only certain queues or subscriptions.

  • Available for Queues and Topics (tracked per topic).

  • Data Type: int

  • Included in sample profile:  yes

    • In the template for Service Bus Queues as a metric called ScheduledMessages

  • Included in default alerts: no



AzureServiceBusTransferMessageCount


Tracks the number of messages transferred to another queue, or topic subscriptions.

  • Available for Queues and Topics (tracked per topic/subscription).

  • Data Type: int

  • Included in sample profile: no

  • Included in default alerts: no



AzureServiceBusTransferMessageCountBatch


Tracks the number of messages transferred into dead letters for all queues or topic subscriptions. ODATA filter may be used for filtering only certain queues or subscriptions.

  • Available for Queues and Topics (tracked per topic).

  • Data Type: int

  • Included in sample profile: yes

    • In the template for Service Bus Queues as a metric called TransferMessages

  • Included in default alerts: no



AzureServiceBusTransferDeadLetterMessageCount


Tracks the number of messages transferred into dead letters for monitored queue or topic subscriptions.

  • Available for Queues and Topics (tracked per topic/subscription).

  • Data Type: int

  • Included in sample profile: no

  • Included in default alerts: no



AzureServiceBusTransferDeadLetterMessageCountBatch


Tracks the number of messages transferred into dead letters for all queues or topic subscriptions. ODATA filter may be used for filtering only certain queues or subscriptions.

  • Available for Queues and Topics (tracked per topic).

  • Data Type: int

  • Included in sample profile: yes

    • In the template for Service Bus Queues as a metric called TransferDeadLetters

  • Included in default alerts: yes

    • In the template for Service Bus Queues as an alert called DeadLetters Detected (not enabled, requires providing which topic or subscription should be monitored)



AzureServiceBusTopicDetailsList


Tracks detailed Service Bus Subscription statistics for a particular topic. ODATA filter may be used for filtering only certain queues or subscriptions.

  • Available for Topics only (tracked per topic).

  • Data Type: object with the following properties:

  • Subscription (string): name of the subscription description.

  • ActiveMessages (long): the number of active messages in the queue, topic, or subscription

  • DeadLetters (long): the number of messages that are dead letters.

  • TransferDeadLetters (long): the number messages transferred into dead letters.

  • TransferMessages (long): the number of messages transferred to another queue, topic, or subscription.

  • ScheduledMessages (long): the number of scheduled messages.

  • Can be accessed only through aggregation using Expressions described in the Working with Expressions article in Evaluating data in sets\arrays (advanced) section.

  • Included in sample profile: yes

    • In the template for Service Bus Topics as a metric called ExampleTopicDetails (not enabled)

  • Included in default alerts: no



AzureServiceBusQueueDetailList


Tracks detailed statistics for all/some queues within Azure Service Bus namespace. ODATA filter may be used for filtering only certain queues or subscriptions.

  • Available for Queues only.

  • Data Type: object with the following properties:

  • Queue (string): the name of the queue.

  • ActiveMessages (long): the number of active messages in the queue, topic, or subscription

  • DeadLetters (long): the number of messages that are dead letters.

  • TransferDeadLetters (long): the number messages transferred into dead letters.

  • TransferMessages (long): the number of messages transferred to another queue, topic, or subscription.

  • ScheduledMessages (long): the number of scheduled messages.

  • Can be accessed only through aggregation using Expressions described in the Working with Expressions article in Evaluating data in sets\arrays (advanced) section.

  • Included in sample profile: yes

    • In the template for Service Bus Queues as a metric called Queues

  • Included in default alerts: no



OldestMessageId


Tracks an id of the next available message in the monitored queue. When there are no messages in the queue, the value for this metric will not exist.

  • Available for Queues only.

  • Data Type: string

  • Included in sample profile: no

  • Included in default alerts: no



OldestMessageContents


Tracks contents of the next available message in the monitored queue. When there are no messages in the queue, the value for this metric will not exist.

  • Available for Queues only.

  • Data Type: string

  • Included in sample profile: no

  • Included in default alerts: no



OldestMessageAgeInMunites


Tracks the age of the next available message in the monitored queue. Tracking this metric is useful to help determine if processing of the queue is occurring. When there are no messages in the queue, the value for this metric will not exist.

  • Available for Queues only.

  • Data Type: decimal

  • Included in sample profile: no

  • Included in default alerts: no



AzureServiceBusQueueStatistics


Queue statistics obtained using Azure Management API. Includes information about the numbers of incoming messages, outgoing messages, successful and failed operations.

  • Available for Queues only.

  • Available only in Classic API.

  • Data Type: collection of double

  • Included in sample profile: no

  • Included in default alerts: no

Since the data for this metric is provided by Azure, there might be delays which will cause CloudMonix to present outdated information. Therefore it’s important to always interpret the value of this metric in combination with other data provided by CloudMonix.



AzureServiceBusTopicSubscriptionStatistics


Topic statistics obtained using Azure Management API. Includes information about the numbers of incoming messages, outgoing messages, successful and failed operations.

  • Available for Topics only (tracked per topic).

  • Available only in Classic API.

  • Data Type: collection of double

  • Included in sample profile: no

  • Included in default alerts: no

Since the data for this metric is provided by Azure, there might be delays which will cause CloudMonix to present outdated information. Therefore it’s important to always interpret the value of this metric in combination with other data provided by CloudMonix.



Alerts

Users can create alerts based on changes in any value tracked by CloudMonix (including custom metrics). Each resource template includes alerts which are suitable for a given resource. The predefined alerts for Azure Service Bus are listed in the Metrics section. Refer to the Alerts article to learn more about alerts in general.


Alerts are available during the Trial period or in Professional and Ultimate plans only.


Actions

CloudMonix Actions can be used in the Azure Service Bus Queues or Topics configuration to perform operations on other Azure resources. For example, when queues are filling up or are not depleted in a timely manner it might indicate a problem with a VM, which might be then automatically rebooted by CloudMonix.


The available operations will be listed in the Execute Command dropdown, after selecting the target resource from the Execute on dropdown.


 

Actions are available during the Trial period or in the Ultimate plan only.