Condividi tramite


Recuperare i contatori di messaggi

Questo articolo illustra diversi metodi per ottenere il numero di messaggi per una coda o una sottoscrizione. Il conteggio dei messaggi attivi è utile per stabilire se una coda crea un backlog che richiede più risorse per essere elaborato rispetto a quelle attualmente distribuite.

Contatore Descrizione
ActiveMessageCount Numero di messaggi nella coda o nella sottoscrizione che sono in stato attivo e pronti per la consegna. Sono inclusi i messaggi posticipati.
ScheduledMessageCount Numero di messaggi in stato pianificato.
DeadLetterMessageCount Numero di messaggi nella coda di messaggi non recapitabili.
TransferMessageCount Numero di messaggi in attesa di trasferimento in un'altra coda o in un altro argomento.
TransferDeadLetterMessageCount Numero di messaggi che non sono stati trasferiti in un'altra coda o in un altro argomento e sono stati spostati nella coda di messaggi non recapitabili di trasferimento.

Se un'applicazione vuole ridimensionare le risorse in base alla lunghezza della coda, deve farlo in maniera limitata. L'acquisizione dei contatori di messaggi è un'operazione impegnativa all'interno del broker messaggi e, se viene eseguita frequentemente, influisce direttamente e negativamente sulle prestazioni dell'entità.

Un'altra metrica utile da tenere in considerazione per il ridimensionamento è il l'intervallo di tempo tra l'invio del messaggio più recente e la sua elaborazione, noto anche come "tempo critico". Questo è utile per gli scenari in cui una coda può contenere migliaia di messaggi, ma l'elaborazione è abbastanza veloce da tenere il passo, risultando in un "tempo critico" di un paio di secondi che può essere più che sufficiente per, ad esempio, un endpoint di invio di posta elettronica. Le librerie di terze parti come NServiceBus generano questa e altre metriche utili tramite OpenTelemetry.

Nota

I messaggi inviati a un argomento del bus di servizio vengono inoltrati alle sottoscrizioni per tale argomento. Pertanto, il conteggio dei messaggi attivi sull'argomento stesso è 0, in quanto tali messaggi sono stati inoltrati correttamente alla sottoscrizione. Ottenere il numero di messaggi nella sottoscrizione e verificare che sia maggiore di 0. Anche se vengono visualizzati alcuni messaggi nella sottoscrizione, questi sono in realtà archiviati in una risorsa di archiviazione di proprietà dell'argomento. Se si esaminano le sottoscrizioni, il numero di messaggi sarebbe diverso da zero, che contribuiscono alla risorsa di archiviazione usata dall'argomento.

Con il portale di Azure

Passare allo spazio dei nomi e selezionare la coda. Nella pagina Panoramica della coda sono mostrati i contatori di messaggi.

Screenshot che mostra la pagina Panoramica di una coda con la sezione Numero messaggi evidenziata.

Passare allo spazio dei nomi, selezionare l'argomento e quindi la sottoscrizione per l'argomento. Nella pagina Panoramica della coda sono mostrati i contatori di messaggi.

Screenshot che mostra la pagina Panoramica della sottoscrizione di un argomento con la sezione Numero messaggi evidenziata.

Utilizzare l'interfaccia della riga di comando di Azure

Usare il comando az servicebus queue show per ottenere i dettagli del numero di messaggi per una coda, come illustrato nell'esempio seguente.

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

Di seguito è riportato un output di esempio:

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

Usare il comando az servicebus topic subscription show per ottenere i dettagli relativi al numero di messaggi per una sottoscrizione, come illustrato nell'esempio seguente.

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

Uso di Azure PowerShell

Con PowerShell, è possibile ottenere i dettagli del numero di messaggi per una coda come indicato di seguito:

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

$queueObj.CountDetails

Di seguito è riportato l'output di esempio:

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

è possibile ottenere i dettagli del conteggio dei messaggi per una sottoscrizione come indicato di seguito:

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

$topicObj.CountDetails

L'oggetto MessageCountDetails restituito ha le proprietà seguenti: ActiveMessageCount, DeadLetterMessageCount, ScheduledMessageCount, TransferDeadLetterMessageCount, TransferMessageCount.

Passaggi successivi

Provare gli esempi nel linguaggio preferito per esplorare le funzionalità del bus di servizio di Azure.

Campioni per le librerie client .NET e Java precedenti possono essere trovati di seguito:

Il 30 settembre 2026 verranno ritirate le librerie dell'SDK del bus di servizio di Azure WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus e com.microsoft.azure.servicebus, che non sono conformi alle linee guida di Azure SDK. Verrà terminato anche il supporto del protocollo SBMP, quindi non sarà più possibile usare questo protocollo dopo il 30 settembre 2026. Eseguire la migrazione alle librerie più recenti di Azure SDK, che offrono aggiornamenti critici della sicurezza e funzionalità migliorate, prima di tale data.

Anche se le librerie precedenti possono ancora essere usate oltre il 30 settembre 2026, non riceveranno più il supporto e gli aggiornamenti ufficiali da Microsoft. Per altre informazioni, vedere l'annuncio del ritiro del supporto.