def check(self, instance): subscription_id, cert_file_handle, cert_file_path, namespace, tags = AzureServiceBusCheck._load_conf(instance) tags.append("namespace:" + namespace) tags.append("subscription:" + subscription_id) management_service = ServiceBusManagementService(subscription_id, cert_file_path) queues = management_service.list_queues(namespace) rate_base_datetime = datetime.utcnow() - timedelta(minutes=15) rate_datetime = rate_base_datetime \ .replace(minute=rate_base_datetime.minute - rate_base_datetime.minute % 5, second=0, microsecond=0, tzinfo=tzinfo(0, 'Z')) rate_datetime_timestamp = calendar.timegm(rate_datetime.utctimetuple()) metric_filter = AzureServiceBusCheck.get_metric_filter(rate_datetime, timedelta(minutes=5)) for queue in queues: # type: QueueDescription queue_tags = list(tags) queue_tags.append("queue:" + queue.name) self.check_queue(queue, queue_tags) metrics = management_service.get_supported_metrics_queue(namespace, queue.name) # type: MetricProperties for metric in metrics: metric_data_list = management_service.get_metrics_data_queue( namespace, queue.name, metric.name, 'PT5M', metric_filter) self.check_metric(metric, metric_data_list, queue_tags, rate_datetime_timestamp) if cert_file_handle is not None: os.close(cert_file_handle) os.remove(cert_file_path)