Partilhar via


Obter contadores de mensagens

Este artigo mostra diferentes maneiras de obter contagens de mensagens para uma fila ou assinatura. Conhecer 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 Description
ActiveMessageCount Número de mensagens na fila ou assinatura que estão no estado ativo e prontas para entrega. Isso inclui mensagens adiadas.
ScheduledMessageCount Número de mensagens no estado agendado.
DeadLetterMessageCount Número de mensagens na fila de mensagens mortas.
TransferMessageCount Número de mensagens pendentes de transferência para outra fila ou tópico.
TransferDeadLetterMessageCount Número de mensagens que não conseguiram ser transferidas para outra fila ou tópico e que foram movidas para a fila de mensagens mortas de transferência.

Se um aplicativo quiser dimensionar recursos com base no comprimento da fila, deverá fazê-lo com um ritmo medido. A aquisição dos contadores de mensagens é uma operação cara dentro do agente de mensagens, e executá-la frequentemente afeta direta e adversamente o desempenho da entidade.

Outra métrica útil a ser considerada para dimensionamento é o tempo entre quando a última mensagem foi enviada e quando foi processada, 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 e-mail. Bibliotecas de terceiros como o NServiceBus emitem essa e outras métricas úteis via OpenTelemetry.

Nota

As mensagens enviadas para um tópico do Service Bus são encaminhadas para assinaturas desse tópico. Assim, a contagem de mensagens ativas no tópico em si é 0, pois essas mensagens foram encaminhadas com sucesso para a assinatura. Obtenha a contagem de mensagens na subscrição e verifique se é superior a 0. Mesmo que você veja mensagens na assinatura, elas são realmente armazenadas em um armazenamento de propriedade do tópico. Se você olhar para as assinaturas, elas teriam uma contagem de mensagens diferente de zero, o que contribui para o armazenamento usado pelo tópico.

Através do portal do Azure

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

Captura de ecrã a mostrar a página Descrição Geral de uma fila com a secção Contagens de Mensagens realçada.

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

Captura de ecrã a mostrar a página Descrição Geral da subscrição de um tópico com a secção Contagens de Mensagens realçada.

Utilizar a CLI do Azure

Use o az servicebus queue show comando para obter os detalhes da contagem de mensagens para 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 az servicebus topic subscription show comando para obter os detalhes da 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

Utilizar o Azure PowerShell

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

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

$queueObj.CountDetails

Aqui está a saída de exemplo:

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

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

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

$topicObj.CountDetails

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

Próximos passos

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

Encontre exemplos 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, para que você não possa mais usar esse protocolo após 30 de setembro de 2026. Migre para as bibliotecas mais recentes do SDK do Azure, que oferecem atualizações de segurança críticas e recursos aprimorados, antes dessa data.

Embora as bibliotecas mais antigas ainda possam 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, consulte o anúncio de aposentadoria de suporte.