Overview


Information in this article is related to using CloudMonix for monitoring Azure Queue Storage.


The article covers the following topics:

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

  • what happens in the monitoring cycle

  • what is needed to connect to and monitor Azure Queue Storage

  • what metrics can be tracked, visualized and monitored

  • what automated actions can be executed by CloudMonix


Why use CloudMonix for Azure Queue Storage?

Popular usages of CloudMonix include the following examples:

  • Monitoring queue length and age of next to be dequeued message

  • Alerting when queues are not being depleted (see this article to learn more)

  • Monitoring Uptime and Availability

  • Monitoring Queue Storage status, utilization, usage and response times

  • Alerting on slow or failed requests to the Queue Storage


Monitoring Cycle

During each monitoring cycle, CloudMonix explicitly adds, peeks and deletes a tiny test message in the monitored Queue Storage to track Ready status and measure Response Time.


Also, during every monitoring cycle CloudMonix will capture metrics data by directly querying Queue Storage account or the Storage Analytics API.

Configuration

CloudMonix supports Azure Queue Storage monitoring for both Classic and v2/ARM storage accounts. See this article to learn more about differences between monitoring Classic and ARM resources.


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



CloudMonix can be given access to the monitored storage similar to other Azure resources, i.e. by specifying Azure Management Certificate for Classic or token for v2/ARM Storage. It’s also possible to provide only Storage Key, but in such case users need to ensure that the key is updated in CloudMonix if it ever changes in Azure.


MbATGvV8nXD3MZWHzAABnK_9nRr9ldgxPA.png





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.


CloudMonix retrieves some metrics directly via the Queue Storage API, however many metrics are obtained from Azure Storage Analytics. It’s highly recommended to enable tracking this information in Resource Configuration dialog.

CloudMonix accesses and enables collecting only Storage Analytics stats (stored in tables), it won’t use and won’t enable Storage Analytics logging. Enabling Storage Analytics will generate additional costs, see Storage Analytics and Billing to learn more.


hTfxJBIQ0jB6bQh6ZN8P6xDbpbWpkEvrwQ.png



CloudMonix provides a default template for monitoring Azure Queue Storage that contains most useful Metrics and Alerts.

 

jOExs-hDDIpp-Ml2BuUzWeZX5g148zfnVA.png



The metrics can be added, removed and customized in the Metrics tab in the resource configuration dialog.

Built-in Metrics


ResourceStatus

Identifies the last state of the monitored resource. 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.

  • Data Type: string

  • Possible values: Ready, Down, Unknown

  • Included in sample profile: yes, tracked in both templates as a metric called Status

  • Included in default alerts: yes, in both templates as an alert called ResourceOutage (Error) Status other than Ready sustained for at least 5 min.

Statuses are determined according to the following rules:


  • Ready - successfully connected to the resource and retrieved metrics

  • Down - there was an error when trying to retrieve data from the resource

  • Unknown - can’t connect to the resource (e.g. because of invalid credentials)


ResponseTime

Tracks the time in milliseconds it takes to add, peek and then delete a message in Queue Storage. Metric is retrieved via Queue Storage API.

  • Data Type: double

  • Included in sample profile: yes, tracked as a metric called ResponseTime

  • Included in default alerts: yes, in an alert called Slow Response  (Warning): Fires an alert if the response time from doing testing operations exceeds 15 seconds, sustained for at least 3 min.


AzureStorageUserAnalytics

Tracks selected metrics for a given entity in a storage analytics metrics table, where Access Type of a given metric value equals user.

  • Azure Storage Analytics must be enabled to allow CloudMonix track this metric.

  • Requires selecting a metrics to track, e.g. AnonymousAuthorizationError, Availability or NetworkError. See the full list of available metrics.

  • Data Type: double

  • Included in sample profile: no

  • Included in default alerts: no


AzureStorageSystemAnalytics

Tracks selected metrics for a given entity in a storage analytics metrics table, where Access Type of a given metric value equals system.

  • Azure Storage Analytics must be enabled to allow CloudMonix track this metric.

  • Requires selecting a metrics to track, e.g. AnonymousAuthorizationError, Availability or NetworkError. See the full list of available metrics.

  • Data Type: double

  • Included in sample profile: no

  • Included in default alerts: no


AzureStorageQueueLength

Tracks the approximate message count for the queue. Retrieved via Queue Storage API, corresponds to the ApproximateMessageCount value.

  • Data Type: int

  • Included in sample profile: yes, but must be explicitly enabled, as a metric called SampleQueueLength

  • Included in default alerts: no


AzureStorageQueueOldestMessageId

Tracks a message id of the next peeked message in the queue. Retrieved via Queue Storage API, corresponds to the Id property of the peeked message. Useful to compare current to (aggregate) previous value of this metric to determine if queue is not being depleted.

  • Data Type: string

  • Included in sample profile: no

  • Included in default alerts: no


AzureStorageQueueOldestMessageAgeInMinutes

Tracks the age of the next peeked message in the queue. If queue is empty, no data will be tracked for this metric. Retrieved via Queue Storage API, calculated as a difference between the current time and insertion time of the peeked message.

  • Data Type: int

  • Included in sample profile: no

  • Included in default alerts: no


AzureStorageQueueOldestMessageContents

Tracks and visualizes data from the payload of next peeked message in the queue. If queue is empty or message is not possible to deserialize, no data will be tracked for this metric. Retrieved via Queue Storage API using AsString method of the peeked message.

  • Data Type: string

  • Included in sample profile: no

  • Included in default alerts: no


AzureStorageAvailability

Tracks percent availability of storage.

  • Azure Storage Analytics must be enabled to allow CloudMonix track this metric.

  • Data Type: double

  • Included in sample profile: yes, tracked as a metric called Availability

  • Included in default alerts: no


AzureStorageEgressPerSecond

Tracks amount of bytes retrieved from storage per minute.

  • Azure Storage Analytics must be enabled to allow CloudMonix track this metric.

  • Data Type: double

  • Included in sample profile: yes, tracked as a metric called Egress

  • Included in default alerts: no


AzureStorageIngressPerSecond

Tracks amount of bytes sent to storage per minute.

  • Azure Storage Analytics must be enabled to allow CloudMonix track this metric.

  • Data Type: double

  • Included in sample profile: yes, tracked as a metric called Ingress

  • Included in default alerts: no


AzureStorageSuccessfullRequestsPerSecond

Tracks number of successful user requests against storage.

  • Azure Storage Analytics must be enabled to allow CloudMonix track this metric.

  • Data Type: double

  • Included in sample profile: yes, tracked as a metric called SuccessfulRequests

  • Included in default alerts: yes, but must be explicitly enabled, in an alert called Failed Requests Detected (Warning): Raises an alert when total number of requests against storage is greater than successful number of requests for 10 minutes sustained.  Optimally, the two metrics should be the same


AzureStorageTotalRequestsPerSecond

Tracks number of total requests against storage per minute.

  • Azure Storage Analytics must be enabled to allow CloudMonix track this metric.

  • Data Type: double

  • Included in sample profile: yes, tracked as a metric called TotalRequests

  • Included in default alerts: yes, but must be explicitly enabled, in an alert called Failed Requests Detected (Warning): Raises an alert when total number of requests against storage is greater than successful number of requests for 10 minutes sustained.  Optimally, the two metrics should be the same


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 Queue Storage 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.