如何提醒 Azure 服务总线上的队列大小

How to alert on queue size on azure service bus

我在 Azure 中有一个带有多个队列的高级服务总线。我可以为这些设置最大大小,但我似乎找不到通过任何途径提醒支持团队的方法,但我更喜欢电子邮件,如果这些队列的长度超过 1,000 条消息,即我们的消费者已经倒下或处理速度不够快。

如何在 Azure 服务总线上设置某种形式的队列长度警报?

P.S。我们似乎仍在等待它作为第一个 class 功能实现:https://feedback.azure.com/forums/231545-diagnostics-and-monitoring/suggestions/4486464-alerts-based-on-queue-size

我还没有听说过不涉及自定义代码或第三方服务的开箱即用的解决方案。

IMO,经常发生的事情是公司有一个工具来监控其 IT 环境的所有运营指标,并发出警报。根据工具的不同,可能会有不同级别的 Azure 服务监视支持。

如果您没有这样的工具,或者您的工具没有与服务总线集成,一种方法是创建一个 Azure 函数(或多个函数)来从服务总线队列中检索统计信息,然后将其集成使用启用警报的工具。

你的问题的建议论坛有一个 link 到 integration to Azure Application Insights. We use PRTG for monitoring and alerting, so we integrated PRTG to Azure Functions

传统上,一种解决方案确实是使用 NamespaceManager 提取消息计数并定期报告该值。虽然这是一种有效的方法,但最近出现了另一种替代方法 - Azure Monitor Service.

使用这种方法,与轮询数据不同,Azure 服务总线会报告以监控指标。可以查询这些指标或创建警报,将通知发送到电子邮件地址、webhook 或 LogicApp。它仍然是新鲜的并且处于预览状态,但正在形成良好的状态。特别是对于 Azure 服务总线,您已经可以 get the metrics for a namespace 并且在可预见的将来应该可以使用实体特定信息。

更新

我已经 raised an issue 了 Azure 服务总线,你可以跟踪它以了解它何时可用。

Azure 门户提供了在实体超过阈值时触发警报的功能。您可以在 Azure 门户中使用 monitoring 来实现此目的。请注意,此功能目前处于预览阶段。