Skip to main content

Azure Powershell : Loop through each service bus connections and queue to get ActiveMessageCount and deadLetterMessageCount

Following powershell script can be used to loop through each service bus connections and queue to get Activate Message count and Dead Letter message count.

Select-AzSubscription -Subscription "SubscriptionName"

# Fetch all SB namespaces in subscription
Write-Host "Getting SB Namespaces..."
$sbNameSpaces = Get-AzServiceBusNamespace 

[System.Collections.ArrayList]$sbConnectionStrings = @()

Write-Host "Getting Namespace connection strings, please wait..."
foreach ($sbNameSpace in $sbNameSpaces) {
    $sbResult = Get-AzServiceBusKey -ResourceGroupName $sbNameSpace.ResourceGroupName -Namespace $sbNameSpace.Name -Name RootManageSharedAccessKey
    [void]$sbConnectionStrings.Add($sbResult)
}

# Loop all service bus connections
foreach ($sbConnectionString in $sbConnectionStrings) {
    
    # Connect to the Mangement method 
    $managementClient = [Microsoft.Azure.ServiceBus.Management.ManagementClient]::new($sbConnectionString.PrimaryConnectionString)
     #$test = [Microsoft.Azure.ServiceBus.Management.ManagementClient]::new($hello)

    # Get queue name and use Regex to get namespace name
    $sbQueues = $managementClient.GetQueuesAsync()
    $NameSpace = [regex]::match($sbConnectionString.PrimaryConnectionString,'sb\:.*?\.').Value
    
    # Loop all queues and parse for dead-letters
    foreach ($sbQueue  in $sbQueues.Result) {
        $QueueName = $sbQueue.Path
        $QueueRunTime = $managementClient.GetQueueRuntimeInfoAsync($QueueName)
        $ActiveMessageCount = $QueueRunTime.Result.MessageCountDetails.activeMessageCount
        $deadLetterMessageCount$QueueRunTime.Result.MessageCountDetails.deadLetterMessageCount
}
}

Comments

Popular posts from this blog

Azure Repo Step by Step Guide- Move / Migrate Existing/New Repository to Azure Repo

  Move/Migrate your existing/new  repository to Azure Repo   Create Your   New repository in my case I have created “ FabrikamFiber ” We will use git command to push our local repository to Azure Repo. Open command prompt and go to your local code directory : In my case it will be “C:\Ashok\Test\FabrikamFiber>” Local code directory Run the   following command step by step > git init > git remote add FabrikamFiber https://ITS@dev.azure.com/DEMO-Account/ /_git/ FabrikamFiber   (get this path from step 2. Push existing repository using command line) Change origin in actual command with your repo name > git push -u FabrikamFiber –all    Change origin in actual   command with your repo name   This should push your code repository to specified Azure repo. Please refer to following screen for your reference.   In case if you get following   error while executing push comma...