Obter contadores de mensagens

Este artigo mostra diferentes maneiras de obter as contagens de mensagens para uma fila ou assinatura. Saber a contagem de mensagens ativas é útil para determinar se uma fila cria uma lista de pendências que requer mais recursos para processar do que o que foi implantado atualmente.

Contador Descrição
ActiveMessageCount O número de mensagens na fila ou na assinatura que estão no estado ativo e estão prontas para entrega.
ScheduledMessageCount O número de mensagens no estado agendado.
DeadLetterMessageCount O número de mensagens na fila de mensagens mortas.
TransferMessageCount O número de mensagens pendentes transferidas para outra fila ou tópico.
TransferDeadLetterMessageCount O número de mensagens com falha na transferência para outra fila ou tópico e que foram movidas para a fila de mensagens mortas de transferência.

Se um aplicativo desejar dimensionar os recursos com base no comprimento da fila, ele deverá fazer isso com um ritmo calculado. A aquisição dos contadores de mensagem é uma operação cara dentro do agente de mensagens e executá-la com frequência afeta de forma direta e adversa o desempenho da entidade.

Outra métrica útil a ser considerada no dimensionamento é o tempo entre o envio da última mensagem e o seu processamento, também conhecido como "tempo crítico". Isso é útil para cenários em que uma fila pode ter milhares de mensagens, mas o processamento é rápido o suficiente para acompanhar, dando um "tempo crítico" de apenas alguns segundos, o que pode ser mais do que suficiente para algo como um ponto de extremidade de envio de email. Bibliotecas de terceiros, como o NServiceBus emitem essa e outras métricas úteis por meio do OpenTelemetry.

Observação

As mensagens enviadas para um tópico do Barramento de Serviço são encaminhadas para assinaturas desse tópico. Portanto, a contagem de mensagens ativas no próprio tópico é 0, pois essas mensagens foram encaminhadas com êxito para a assinatura. Obtenha a contagem de mensagens na assinatura e verifique se ela é maior que 0. Mesmo que você veja mensagens na assinatura, elas são, na verdade, armazenadas em um armazenamento de propriedade do tópico. Se você examinar as assinaturas, elas terão uma contagem de mensagens diferente de zero (que somam até 323 MB de espaço para toda a entidade).

Usando o Portal do Azure

Navegue até o namespace e selecione a fila. Você verá contadores de mensagens na página Visão Geral da fila.

Captura de tela mostrando a página de Visão geral de uma fila com a seção Contagens de Mensagens realçada.

Navegue até o namespace, selecione o tópico e escolha a assinatura para o tópico. Você verá contadores de mensagens na página Visão Geral da fila.

Captura de tela mostrando a página de Visão geral da assinatura de um tópico com a seção Contagens de Mensagens realçada.

Usando a CLI do Azure

Use o comando az servicebus queue show para obter os detalhes de contagem de mensagens de uma fila, conforme mostrado no exemplo a seguir.

az servicebus queue show --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --query countDetails

Aqui está um exemplo de saída:

ActiveMessageCount    DeadLetterMessageCount    ScheduledMessageCount    TransferMessageCount    TransferDeadLetterMessageCount
--------------------  ------------------------  -----------------------  ----------------------  --------------------------------
0                     0                         0                        0                       0

Use o comando az servicebus topic subscription show para obter os detalhes de contagem de mensagens de uma assinatura, conforme mostrado no exemplo a seguir.

az servicebus topic subscription show --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --topic-name mytopic \
    --name mysub \
    --query countDetails

Usando o PowerShell do Azure

Com o PowerShell, você pode obter os detalhes de contagem de mensagens para uma fila da seguinte maneira:

$queueObj=Get-AzServiceBusQueue -ResourceGroup myresourcegroup `
                    -NamespaceName mynamespace `
                    -QueueName myqueue 

$queueObj.CountDetails

Veja o exemplo de saída:

ActiveMessageCount             : 7
DeadLetterMessageCount         : 1
ScheduledMessageCount          : 3
TransferMessageCount           : 0
TransferDeadLetterMessageCount : 0

Você pode obter os detalhes de contagem de mensagens para uma assinatura da seguinte maneira:

$topicObj= Get-AzServiceBusSubscription -ResourceGroup myresourcegroup `
                -NamespaceName mynamespace `
                -TopicName mytopic `
                -SubscriptionName mysub

$topicObj.CountDetails

O objeto MessageCountDetails retornado tem as seguintes propriedades: ActiveMessageCount, DeadLetterMessageCount, ScheduledMessageCount, TransferDeadLetterMessageCount, TransferMessageCount.

Próximas etapas

Experimente os exemplos no idioma de sua escolha para explorar os recursos do Barramento de Serviço do Azure.

Encontre amostras para as bibliotecas de cliente .NET e Java mais antigas abaixo:

Em 30 de setembro de 2026, desativaremos as bibliotecas do SDK do Barramento de Serviço do Azure WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus e com.microsoft.azure.servicebus, que não estão em conformidade com as diretrizes do SDK do Azure. Também encerraremos o suporte ao protocolo SBMP, portanto, ele não poderá mais ser usado após 30 de setembro de 2026. Antes dessa data, migre para as bibliotecas mais recentes do SDK do Azure, que oferecem atualizações de segurança críticas e funcionalidades aprimoradas.

Embora as bibliotecas mais antigas ainda poderão ser usadas após 30 de setembro de 2026, elas não receberão mais suporte e atualizações oficiais da Microsoft. Para obter mais informações, confira o anúncio de desativação do suporte.