【问题标题】:Get message counts across all Service Bus queues and topics获取所有服务总线队列和主题的消息计数
【发布时间】:2022-11-06 22:32:08
【问题描述】:

我有一个包含许多服务总线队列和主题的 Azure 订阅。是否有一种简单的方法可以检查所有队列和主题订阅中的活动和死信消息计数,而无需逐个单击它们?

【问题讨论】:

    标签: azure powershell azureservicebus azure-powershell


    【解决方案1】:

    这可以通过在 Azure Cloud Shell 中运行 PowerShell 脚本来实现。

    如果您感兴趣的所有队列和主题都属于一个服务总线命名空间,您可以使用:

    $resourceGroupName = <enter your resource group name here>
    $namespaceName = <enter your namespace name here>
    $queueMessageCounts = @()
    $topicMessageCounts = @()
    
    $queues = Get-AzServiceBusQueue -ResourceGroup $resourceGroupName -NamespaceName $namespaceName
    foreach ($queue in $queues) {
      $queueMessageCounts += [PSCustomObject]@{
        Queue = $queue.Name
        ActiveMessageCount = $queue.CountDetailActiveMessageCount             
        DeadLetterMessageCount = $queue.CountDetailDeadLetterMessageCount
      }
    }
    
    $queueMessageCounts | Format-Table
    
    $topics = Get-AzServiceBusTopic -ResourceGroup $resourceGroupName -NamespaceName $namespaceName
    foreach ($topic in $topics) {
      $subscriptions = Get-AzServiceBusSubscription -ResourceGroup $resourceGroupName -NamespaceName $namespaceName -TopicName $topic.Name
      foreach ($subscription in $subscriptions) {
        $topicMessageCounts += [PSCustomObject]@{
          Topic = $topic.Name
          Subscription = $subscription.Name
          ActiveMessageCount = $subscription.CountDetailActiveMessageCount             
          DeadLetterMessageCount = $subscription.CountDetailDeadLetterMessageCount
        }
      }
    }
    
    $topicMessageCounts | Format-Table
    

    如果您想获得订阅中的所有内容,请使用:

    $queueMessageCounts = @()
    $topicMessageCounts = @()
    
    $namespaces = Get-AzServiceBusNamespace
    foreach ($namespace in $namespaces) {
      
      $queues = Get-AzServiceBusQueue -ResourceGroup $namespace.ResourceGroupName -NamespaceName $namespace.Name
      foreach ($queue in $queues) {
        $queueMessageCounts += [PSCustomObject]@{
          Namespace = $namespace.Name
          Queue = $queue.Name
          ActiveMessageCount = $queue.CountDetailActiveMessageCount             
          DeadLetterMessageCount = $queue.CountDetailDeadLetterMessageCount
        }
      }
      
      $topics = Get-AzServiceBusTopic -ResourceGroup $namespace.ResourceGroupName -NamespaceName $namespace.Name
      foreach ($topic in $topics) {
        $subscriptions = Get-AzServiceBusSubscription -ResourceGroup $namespace.ResourceGroupName -NamespaceName $namespace.Name -TopicName $topic.Name
        foreach ($subscription in $subscriptions) {
          $topicMessageCounts += [PSCustomObject]@{
            Namespace = $namespace.Name
            Topic = $topic.Name
            Subscription = $subscription.Name
            ActiveMessageCount = $subscription.CountDetailActiveMessageCount             
            DeadLetterMessageCount = $subscription.CountDetailDeadLetterMessageCount
          }
        }
      }
    }
    
    $queueMessageCounts | Format-Table
    $topicMessageCounts | Format-Table
    

    【讨论】:

      猜你喜欢
      • 2017-04-22
      • 1970-01-01
      • 2015-05-13
      • 1970-01-01
      • 1970-01-01
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 2021-08-16
      相关资源
      最近更新 更多