如何查询Azure Service Bus队列过去一年进入DLQ的消息总数?
查询Azure Service Bus DLQ过去指定周期的消息总数
以下是几种可靠的方法来统计过去6个月或1年进入死信队列(DLQ)的消息总数:
方法1:Azure Monitor指标统计
直接通过Azure门户或CLI调用Monitor指标,这是最便捷的方式:
- 门户操作:
- 进入目标Service Bus命名空间的页面
- 左侧菜单选择「Monitoring」->「Metrics」
- 指标选择
DeadletteredMessages,聚合方式选Sum - 时间范围设置为「过去6个月」或「过去1年」,界面会自动显示该周期内的DLQ消息总数
- Azure CLI命令:
替换<resource-id>为你的Service Bus命名空间资源ID,<start-time>设置为6个月前或1年前的时间(比如2023-01-01T00:00:00Z):az monitor metrics list --resource <resource-id> --metric DeadletteredMessages --aggregation Sum --start-time <start-time> --end-time now
方法2:Service Bus Explorer工具
这款工具可以直观查看DLQ消息并统计总数:
- 下载并启动Service Bus Explorer,连接到你的Service Bus命名空间
- 找到目标队列对应的DLQ(名称格式为
队列名/$DeadLetterQueue) - 右键选择「View Messages」,在弹出的窗口中设置时间筛选条件(比如「Created Time」在过去6个月内)
- 工具顶部会显示符合条件的消息总数,即使消息量大需要分页,总数依然会准确展示
方法3:Log Analytics查询(需启用诊断日志)
如果已经为Service Bus启用了诊断日志并发送到Log Analytics工作区,可以用Kusto查询统计:
- 进入对应的Log Analytics工作区
- 打开「Logs」页面,执行以下查询(根据需要修改时间范围,
ago(180d)是6个月,ago(365d)是1年):AzureServiceBus | where OperationName == "Deadletter message" | where TimeGenerated between (ago(180d) and now()) | count - 查询结果的
count值就是该周期内进入DLQ的消息总数
内容的提问来源于stack exchange,提问作者Samaira Mathers
相关产品推荐
相关产品推荐

