Pobierz liczniki komunikatów

W tym artykule przedstawiono różne sposoby uzyskiwania liczby komunikatów dla kolejki lub subskrypcji. Znajomość liczby aktywnych komunikatów jest przydatna podczas określania, czy kolejka tworzy zaległości, które wymagają więcej zasobów, aby je przetworzyć, niż obecnie wdrożone zasoby.

Licznik opis
LiczbaAktywnychWiadomości Liczba wiadomości w kolejce lub subskrypcji, które są w stanie aktywnym i są gotowe do dostarczenia. Obejmuje to komunikaty odroczone.
LiczbaZaplanowanychWiadomości Liczba komunikatów w stanie zaplanowanym.
LicznikWiadomościNaListęOdrzuconych Liczba komunikatów w kolejce martwych listów.
TransferMessageCount Liczba komunikatów oczekujących na przeniesienie do innej kolejki lub tematu.
LiczbaKomunikatówOdrzuconychPrzesyłek Liczba komunikatów, które nie mogły zostać przeniesione do innej kolejki lub tematu i zostały przeniesione do kolejki utraconych komunikatów.

Jeśli aplikacja chce skalować zasoby na podstawie długości kolejki, powinna to zrobić za pomocą mierzonego tempa. Pozyskiwanie liczników komunikatów jest kosztowną operacją wewnątrz brokera komunikatów i wykonywanie jej często bezpośrednio i niekorzystnie wpływa na wydajność jednostki.

Kolejną przydatną metryczką do rozważenia na potrzeby skalowania jest czas między wysłaniem najnowszej wiadomości a przetworzeniem, nazywanym również "czasem krytycznym". Jest to przydatne w scenariuszach, w których kolejka może zawierać tysiące komunikatów, ale przetwarzanie jest wystarczająco szybkie, aby nadążyć, dając "krytyczny czas" zaledwie kilka sekund, co może być więcej niż wystarczające dla czegoś takiego jak punkt końcowy wysyłania wiadomości e-mail. Biblioteki innych firm, takie jak NServiceBus , emitują te i inne przydatne metryki za pośrednictwem technologii OpenTelemetry.

Uwaga

Komunikaty przesyłane do tematu usługi Service Bus są przekazywane do subskrypcji tego tematu. Tak więc liczba aktywnych komunikatów w samym temacie wynosi 0, ponieważ te komunikaty zostały pomyślnie przekazane do subskrypcji. Pobierz liczbę komunikatów w subskrypcji i sprawdź, czy jest ona większa niż 0. Choć widzisz komunikaty w subskrypcji, są one rzeczywiście przechowywane w repozytorium należącym do wątku. Jeśli spojrzysz na subskrypcje, będą one miały niezerową liczbę komunikatów, która wpływa na zużycie magazynu przez temat.

Przy użyciu witryny Azure Portal

Przejdź do przestrzeni nazw i wybierz kolejkę. Liczniki komunikatów dla kolejki są widoczne na stronie Przegląd.

Zrzut ekranu przedstawiający stronę Przegląd kolejki z wyróżnioną sekcją Licznik wiadomości.

Przejdź do przestrzeni nazw, wybierz temat, a następnie wybierz subskrypcję tematu. Liczniki komunikatów dla kolejki są widoczne na stronie Przegląd.

Zrzut ekranu przedstawiający stronę Przegląd subskrypcji tematu z wyróżnioną sekcją Licznik wiadomości.

Korzystanie z Azure CLI

Użyj polecenia az servicebus queue show, aby uzyskać szczegóły dotyczące liczby komunikatów dla kolejki, jak to pokazano w poniższym przykładzie.

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

Oto przykładowe dane wyjściowe:

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

az servicebus topic subscription show Użyj polecenia , aby uzyskać szczegóły liczby komunikatów dla subskrypcji, jak pokazano w poniższym przykładzie.

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

Korzystanie z programu Azure PowerShell

Za pomocą narzędzia PowerShell można uzyskać szczegółowe informacje o liczbie komunikatów dla kolejki w następujący sposób:

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

$queueObj.CountDetails

Oto przykładowe dane wyjściowe:

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

Szczegóły liczby komunikatów dla subskrypcji można uzyskać w następujący sposób:

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

$topicObj.CountDetails

Zwrócony MessageCountDetails obiekt ma następujące właściwości: ActiveMessageCount, , DeadLetterMessageCountScheduledMessageCount, TransferDeadLetterMessageCount, TransferMessageCount.

Następne kroki

Wypróbuj przykłady w wybranym języku, aby zapoznać się z funkcjami usługi Azure Service Bus.

Znajdź przykłady dla starszych bibliotek klienckich .NET i Java poniżej:

30 września 2026 r. wycofamy biblioteki zestawu SDK usługi Azure Service Bus WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus i com.microsoft.azure.servicebus, które nie są zgodne z wytycznymi dotyczącymi zestawu Azure SDK. Zakończymy również obsługę protokołu SBMP, więc nie będzie można już używać tego protokołu po 30 września 2026 r. Przeprowadź migrację do najnowszych bibliotek zestawu Azure SDK, które oferują krytyczne aktualizacje zabezpieczeń i ulepszone możliwości przed tą datą.

Mimo że starsze biblioteki mogą być nadal używane poza 30 września 2026 r., nie będą już otrzymywać oficjalnej pomocy technicznej i aktualizacji od firmy Microsoft. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu pomocy technicznej.