Azure Storage-Warteschlangenüberwachung: Verfolgen der Länge einzelner Warteschlangen
Kurz gesagt: Azure Storage-Warteschlangen verfügen nicht über eine integrierte individuelle Warteschlangenlängenmetrik. Sie können jedoch das Azure SDK verwenden, um approximate_message_count
abzufragen und die Länge jeder Warteschlange zu verfolgen. Verwenden Sie OpenTelemetry, um diese Daten als benutzerdefinierte Metrik auszugeben. Zur Automatisierung dieses Prozesses durch Azure Functions steht ein Beispielprojekt zur Verfügung, das eine zuverlässige und skalierbare Überwachung ermöglicht.
Wenn Sie Azure Storage-Warteschlangen verwenden und die Länge jeder Warteschlange einzeln überwachen müssen (oder einfach nur wollen), habe ich schlechte Nachrichten. ?
Azure stellt über die integrierte Metrikfunktion nur Metriken zur Gesamtnachrichtenanzahl für das gesamte Speicherkonto bereit. Leider sind diese integrierten Metriken dadurch weniger nützlich, wenn Sie die Anzahl der Nachrichten für eine einzelne Warteschlange verfolgen müssen.
Das Bild oben zeigt ein Beispiel der eingebauten Anzeige. Es gibt immer zwei Warteschlangen, aber wir können nicht ermitteln, wie viele Nachrichten sich in jeder Warteschlange befinden. Die Filterung ist deaktiviert und es gibt keine spezifische Metrik für die Anzahl der Warteschlangennachrichten, wie unten gezeigt.
Warum ist es wichtig, die Länge einzelner Warteschlangen zu überwachen?
Die Überwachung einzelner Warteschlangenlängen kann aus folgenden Gründen wichtig sein. Wenn Sie beispielsweise mehrere Warteschlangen verwalten, möchten Sie möglicherweise Folgendes tun:
Ob Sie debuggen oder skalieren, die Kenntnis der Nachrichtenanzahl pro Warteschlange trägt dazu bei, dass Ihr System fehlerfrei bleibt.
Gute Neuigkeiten?
Obwohl Azure diese Funktionalität nicht standardmäßig bereitstellt, gibt es eine einfache Problemumgehung und dieser Blogbeitrag führt Sie durch den Prozess.
Wie bereits erwähnt, stellt Azure die Länge der einzelnen Speicherwarteschlangen nicht als integrierte Metrik bereit. Angesichts der Tatsache, dass die Leute diese Funktion seit fünf Jahren nachfragen, ist es für Microsoft möglicherweise keine einfache Aufgabe, sie als Standardmetrik zu implementieren. Daher ist es möglicherweise die beste Option, einen Workaround zu finden.
Das führt natürlich zu der Frage: Wenn der Standardindikator diese Funktionalität nicht bietet, gibt es eine andere Möglichkeit, sie zu bekommen? ?
Ein genauerer Blick auf das Azure Storage Account SDK zeigt die Warteschlangeneigenschaften approximate_message_count
, die Ihnen Zugriff auf die benötigten Informationen ermöglichen – nur über eine andere Methode.
Wäre es in diesem Wissen nicht großartig, wenn Sie diese Daten verwenden könnten, um die Warteschlangenlänge als Metrik zu verfolgen?
Hier ist ein Gedanke: Was wäre, wenn Sie das tun würden? ?
Sie können die Länge der einzelnen Warteschlangen abfragen, ein Indexvolumen und reguläre Aktualisierung erstellen.
Lassen Sie es uns allmählich zerlegen.
Mit Python SDK können Sie die einzelnen Länge der Warteschlange problemlos abrufen. Siehe das folgende Codefragment:
from azure.identity import DefaultAzureCredential from azure.storage.queue import QueueClient STORAGE_ACCOUNT_URL = "<storage-account-url>" QUEUE_NAME = "<queue-name>" STORAGE_ACCOUNT_KEY = "<key>" credentials = STORAGE_ACCOUNT_KEY or DefaultAzureCredential() client = QueueClient( STORAGE_ACCOUNT_URL, queue_name=QUEUE_NAME, credential=credentials, ) try: properties = client.get_queue_properties() message_count = properties.approximate_message_count print(message_count) except Exception as e: logger.exception(e)
Da SDK auf der Rest -API basiert, bieten andere SDKs auch ähnliche Funktionen. Das Folgende ist die Referenz von REST -API und SDK in anderen Sprachen:
Als nächstes erstellen Sie einen quantitativen Indikator, um die Warteschlangenlänge zu verfolgen.
Aus diesem Grund werden wir<量> Regeln ist ein Indikatortyp, der einen bestimmten Zeitpunktwert misst, wodurch es für die Verfolgung der sich ändernden Warteschlangenlänge sehr geeignet ist.
opentelemetry verwenden, ein Open -Source -Beobachtungsgerüst, das aufgrund seiner Multifunktionalität beim Sammeln von Indikatoren, Tracking und Protokollen immer beliebter wird. Das Folgende ist ein Beispiel für die Verwendung von Opentelemetry, um die Warteschlangenlänge als Maß zu senden:
from opentelemetry.metrics import Meter, get_meter_provider meter = get_meter_provider().get_meter(METER_NAME) gauge = meter.create_gauge( name=gauge_name, description=gauge_description, unit="messages" ) new_length = None ⋮ # 获取 approximate_message_count 并将其设置为 new_length 的代码 gauge.set(new_length)
In der Produktionsumgebung ist die kontinuierliche Überwachungswarteschlange nicht nur der Extraktionsindikator. Sie müssen sicherstellen, dass das System zuverlässig ist, nach Bedarf erweitert werden kann und potenzielle Fehler (wie Netzwerkprobleme oder viele Daten) umgehen kann. Beispielsweise möchten Sie keine Fehleranfragen, die Ihren Überwachungsprozess einstellen.
Wenn Sie daran interessiert sind, zu verstehen, wie sie sich an die Produktionsumgebung anpassen können, habe ich ein Beispiel-Element erstellt: Azure-Storage-Queue-Monitor. Dieser Artikel enthält alle Inhalte, die wir in einer Azure -Funktion, die auf dem Timer -Trigger ausgeführt wird, diskutiert. Es verarbeitet Elastizität, Parallelität und Skalierbarkeit, um sicherzustellen, dass Sie die Warteschlange zuverlässig überwachen können.
Schlussfolgerung
Ich wünsche Ihnen eine glückliche Überwachung! ?
Das obige ist der detaillierte Inhalt vonSo überwachen Sie die Länge Ihrer einzelnen Azure Storage-Warteschlangen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!