Partager via


Obtenir des compteurs de messages

Cet article vous montre différentes façons d’obtenir le nombre de messages pour une file d’attente ou un abonnement. Le fait de connaître le nombre de messages actifs permet de déterminer si une file d’attente génère un backlog dont le traitement nécessite davantage de ressources que celles déployées actuellement.

Compteur Description
ActiveMessageCount Nombre de messages dans la file d’attente ou l’abonnement qui sont à l’état actif et prêts à être remis. Cela inclut les messages différés.
ScheduledMessageCount Nombre de messages à l’état planifié.
DeadLetterMessageCount Nombre de messages dans la file d’attente de lettres mortes.
TransferMessageCount Nombre de messages en attente de transfert vers une autre file d’attente ou rubrique.
TransferDeadLetterMessageCount Nombre de messages dont le transfert vers une autre file d’attente ou rubrique a échoué et qui ont été déplacés vers la file d’attente de lettres mortes de transfert.

Si une application a besoin de mettre à l’échelle les ressources en fonction de la longueur de la file d’attente, elle doit le faire progressivement. L’acquisition des compteurs de messages est une opération onéreuse dans le répartiteur de messages, dont l’exécution fréquente compromet directement les performances des entités.

Une autre mesure utile à prendre en compte pour la mise à l’échelle est l’heure entre le moment où le dernier message a été envoyé et le moment où il a été traité, également appelé « heure critique ». Cela est utile pour les scénarios où une file d’attente peut contenir des milliers de messages, mais que le traitement est assez rapide pour continuer, ce qui donne une « heure critique » de quelques secondes seulement, ce qui peut être plus que suffisant pour quelque chose comme un point de terminaison d’envoi d’e-mail. Des bibliothèques tierces telles que NServiceBus émettre cette fonctionnalité et d’autres mesures utiles par le biais d’OpenTelemetry.

Remarque

Les messages envoyés à une rubrique Service Bus sont transférés aux abonnements pour cette rubrique. Par conséquent, le nombre de messages actifs sur la rubrique elle-même est 0, car ces messages ont été transférés à l’abonnement. Récupérez le nombre de messages au niveau de l’abonnement et vérifiez qu’il est supérieur à 0. Même si vous voyez des messages au niveau de l’abonnement, ils se trouvent en réalité dans un stockage appartenant à la rubrique. Si vous regardez les abonnements, ils auront un nombre de messages non nul, ce qui contribuera au stockage utilisé par le sujet.

En passant par le portail Azure

Accédez à votre espace de noms, puis sélectionnez la file d’attente. Les compteurs de messages s’affichent sur la page Vue d’ensemble de la file d’attente.

Capture d’écran montrant la page Vue d’ensemble d’une file d’attente avec la section Nombre de messages mise en évidence.

Accédez à votre espace de noms, sélectionnez la rubrique, puis sélectionnez l’abonnement pour la rubrique. Les compteurs de messages s’affichent sur la page Vue d’ensemble de la file d’attente.

Capture d’écran montrant la page Vue d’ensemble de l’abonnement d’une rubrique avec la section Nombre de messages mise en évidence.

Utilisation de l’interface de ligne de commande Azure

Utilisez la commande az servicebus queue show pour obtenir les détails du nombre de messages pour une file d’attente, comme indiqué dans l’exemple suivant.

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

Voici un exemple de sortie :

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

Utilisez la commande az servicebus topic subscription show pour obtenir les détails du nombre de messages pour un abonnement, comme indiqué dans l’exemple suivant.

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

Utilisation de Microsoft Azure PowerShell

Avec PowerShell, vous pouvez obtenir les détails du nombre de messages pour une file d’attente comme suit :

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

$queueObj.CountDetails

Voici l'exemple de sortie :

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

Vous pouvez obtenir les détails du nombre de messages pour un abonnement comme suit :

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

$topicObj.CountDetails

L’objet MessageCountDetails renvoyé comporte les propriétés suivantes : ActiveMessageCount, DeadLetterMessageCount, ScheduledMessageCount, TransferDeadLetterMessageCount, TransferMessageCount.

Étapes suivantes

Essayez les exemples dans le langage de votre choix pour explorer les fonctionnalités d’Azure Service Bus.

Recherchez des exemples pour les anciennes bibliothèques clientes .NET et Java ci-dessous :

Le 30 septembre 2026, nous retirerons les bibliothèques WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus et com.microsoft.azure.servicebus du kit de développement logiciel (SDK) Azure Service Bus, qui ne sont pas conformes aux directives du kit de développement logiciel (SDK) Azure. Nous mettrons également fin à la prise en charge du protocole SBMP. Vous ne pourrez donc plus utiliser ce protocole après le 30 septembre 2026. Migrez vers les dernières bibliothèques du kit de développement logiciel (SDK) Azure, qui offre des correctifs de sécurité critiques et des fonctionnalités améliorées, avant cette date.

Bien que les anciennes bibliothèques puissent toujours être utilisées au-delà du 30 septembre 2026, elles ne seront plus prises en charge officiellement et mises à jour par Microsoft. Pour plus d’informations, consultez l’annonce concernant l’arrêt de la prise en charge.