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. Isso inclui mensagens adiadas. |
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ê observar as assinaturas, elas teriam uma contagem de mensagens diferente de zero, o que contribui para o armazenamento usado pelo tópico.
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.
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.
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.
- Exemplos da biblioteca de clientes do Barramento de Serviço do Azure para .NET (mais recentes)
- Amostras da biblioteca de clientes do Barramento de Serviço do Azure para Java (mais recentes)
- Exemplos da biblioteca de clientes do Barramento de Serviço do Azure para Python
- Exemplos da biblioteca de clientes do Barramento de Serviço do Azure para JavaScript
- Exemplos da biblioteca de clientes do Barramento de Serviço do Azure para TypeScript
Encontre amostras para as bibliotecas de cliente .NET e Java mais antigas abaixo:
- Exemplos da biblioteca de clientes do Barramento de Serviço do Azure para .NET (herdado)
- Amostras da biblioteca de cliente do Barramento de Serviço do Azure para Java (herdado)
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.