团队,
我想使用正常的C#监控Azure Service Bus死信队列长度。当接收方无法/无法处理活动队列中的消息并且由于时间延迟而导致死信队列中的计数增加时,它将引发异常。
有没有不使用ApplicationInsights的方法吗?
答案 0 :(得分:0)
如果您使用的是“旧” Service Bus SDK,则可以从MessageCountDetails
中获取它:
var msg = NamespaceManager.CreateFromConnectionString(connectionString);
var queue = msg.GetQueue(queueName);
var dlqCount = queue.MessageCountDetails.DeadLetterMessageCount;
答案 1 :(得分:0)
Azure服务总线团队表示,尽管使用完整的框架.NET客户端仍可提供消息计数,但建议的方法是使用Azure Monitor service。该服务具有一个.NET客户端,可用于获取所需的信息(example)。服务总线团队还发布了示例here。客户过去没有提供所有信息,但是这是正在进行的工作,现在可能与以前有所不同。
如果您仍打算使用Service Bus客户端来检索消息计数,我强烈建议您使用.NET Standard客户端而不是完整框架客户端。 “新”客户端没有NamespaceManager
,但有一个等效的ManagementClient
,它将提供您正在寻找的功能,包括对其前身的改进和向前的错误修复。 “旧”客户端仅在有限的支持下。
答案 2 :(得分:0)
借助最新的Azure Monitor Metrics,可以在队列中获取消息计数(活动和死信)。或者,您可以使用Azure门户中的Azure Monitor,该门户允许您配置仪表板和警报。