Heim >Backend-Entwicklung >Python-Tutorial >So überwachen Sie die Länge Ihrer einzelnen Azure Storage-Warteschlangen

So überwachen Sie die Länge Ihrer einzelnen Azure Storage-Warteschlangen

DDD
DDDOriginal
2025-01-27 22:12:11406Durchsuche

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.

How to Monitor the Length of Your Individual Azure Storage Queues

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.

How to Monitor the Length of Your Individual Azure Storage Queues

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:

  • Verfolgen Sie Warteschlangen für schädliche Nachrichten, um Systemausfälle zu vermeiden.
  • Überwachen Sie den Druck auf bestimmte Warteschlangen, um sicherzustellen, dass sie Nachrichten effizient verarbeiten.
  • Verwalten Sie Skalierungsentscheidungen, indem Sie das Warteschlangenwachstum unter verschiedenen Lasten beobachten.

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.

So erhalten Sie Ihre Messwerte

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.

  1. Holen Sie sich die Warteschlangenlänge

Mit Python SDK können Sie die einzelnen Länge der Warteschlange problemlos abrufen. Siehe das folgende Codefragment:

<code class="language-python">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)</code>

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:

  • rest api-x-ms-angemessene Messages-Count: Int-Wert
  • .NET -ApploximatemessagesCount
  • java -getApploximatemessagesCount ()
  1. Mengenvorschriften erstellen und Anzeigen senden

Als nächstes erstellen Sie einen quantitativen Indikator, um die Warteschlangenlänge zu verfolgen.

Regeln ist ein Indikatortyp, der einen bestimmten Zeitpunktwert misst, wodurch es für die Verfolgung der sich ändernden Warteschlangenlänge sehr geeignet ist.

Aus diesem Grund werden wir

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:

<code class="language-python">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)</code>
opentelemetry ist ein weiterer Vorteil ihrer integrierten Integration in verschiedene Beobachtungsinstrumente (wie Prometheus, Azure Application Insights, Grafana usw.).

  1. Machen Sie es sich an die Produktionsumgebung anpassen

Obwohl die obige Methode für Experimente sehr geeignet ist, benötigen Sie möglicherweise eine leistungsstärkere Lösung, um sich an die Produktionsumgebung anzupassen. Hier spielen Elastizität und Skalierbarkeit.

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

Jetzt haben Sie die Schritte gemeistert, um die Länge einer einzelnen Warteschlange zu verfolgen und sie als benutzerdefinierte Anzeige zu verwenden. Wenn Sie es versuchen, teilen Sie bitte Ihre Erfahrungen oder Verbesserungen jederzeit mit -ich freue mich, Ihre Ideen zu hören und Ihnen zu helfen, wenn Sie auf Probleme stoßen!

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn