针对毒物队列计数的Azure警报规则

时间:2017-09-20 08:09:32

标签: azure queue azure-webjobs poison-queue

在一个以前的项目中,我设法设置了一个警报规则,该规则查看毒物队列消息计数,并在队列中有东西(每天一次)时使用webhook进行松弛。

我试图找到Azure中存在的位置,因为它看起来已经移动了。如果这不是azure提供的功能,您可以指导实现类似内容的最佳途径。

由于

1 个答案:

答案 0 :(得分:0)

  

我试图找到Azure中存在的位置,因为它看起来已经移动了。如果这不是azure提供的功能,您可以指导实现类似的最佳路线。

据我所知,目前azure没有提供任何功能来发送警报规则来检查毒药队列数。

您需要编写自己的逻辑来实现此要求。

我建议您考虑使用webjob / azure功能定时器触发器或队列触发器。

如果您想每5分钟检查一次毒药数(例如),您可以选择timer trigger

然后在计时器触发器方法中,您可以使用ApproximateMessageCount方法来获取队列消息的计数。

最后,您可以使用sendgrid将通知电子邮件发送到特殊帐户。

代码:

        //get the storage account from the connection string
        CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));

        //instantiate the client
        CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();

        CloudQueue q = queueClient.GetQueueReference("queue-poison");
        q.FetchAttributes();
        var qCnt = q.ApproximateMessageCount;

如果要在新队列消息添加到毒性队列中时获取计数。您可以选择queue trigger。代码与定时器触发器相同,只需更改参数即可。