Erstellen von Warnungen, um zu überwachen, ob sich der Speicher für einen logischen Partitionsschlüssel 20 GB annähert

GILT FÜR: NoSQL MongoDB Cassandra Gremlin Tabelle

Azure Cosmos DB erzwingt eine maximale Größe des logischen Partitionsschlüssels von 20 GB. Wenn Sie z. B. einen Container oder eine Sammlung nach UserId partitioniert haben, können die Daten in der logischen Partition „Alice“ bis zu 20 GB an Daten speichern.

Sie können Warnungen verwenden, um zu überwachen, ob Sie über logische Partitionsschlüssel verfügen, die sich dem Grenzwert von 20 GB für logische Partitionen nähern. Warnungen können Ihnen eine Benachrichtigung in Form einer E-Mail senden oder eine Aktion ausführen, z. B. eine Azure-Funktion oder Logik-App, wenn die Bedingung ausgelöst wird.

In diesem Artikel erstellen wir eine Warnung, die ausgelöst wird, wenn der Speicher für einen logischen Partitionsschlüssel 70 % des Grenzwerts von 20 GB überschreitet (über mehr als 14 GB Speicher verfügt). Sie können Warnungen im Bereich Warnungen in einem bestimmten Azure Cosmos DB-Konto oder im Azure Monitor-Dienst im Azure-Portal einrichten. Beide Schnittstellen bieten die gleichen Optionen. In diesem Artikel erfahren Sie, wie Sie die Warnung über Azure Monitor einrichten.

Voraussetzungen

Wir verwenden Daten aus der Protokollkategorie PartitionKeyStatistics in Diagnoseprotokollen, um unsere Warnung zu erstellen. Diagnoseprotokolle sind ein optionales Feature, daher müssen Sie es aktivieren, bevor Sie fortfahren. In unserem Beispiel verwenden wir die empfohlene Option „Ressourcenspezifische Protokolle“.

Befolgen Sie die Anweisungen unter Überwachen von Azure Cosmos DB-Daten mithilfe von Diagnoseeinstellungen in Azure, um Folgendes sicherzustellen:

  • Diagnoseprotokolle sind für die Azure Cosmos DB-Konten aktiviert, die Sie überwachen möchten.
  • Sie haben die Sammlung der Protokollkategorie PartitionKeyStatistics konfiguriert.
  • Die Diagnoseprotokolle werden an einen Log Analytics-Arbeitsbereich gesendet.

Erstellen der Warnung

  1. Melden Sie sich beim Azure-Portal an.

  2. Wählen Sie in der Navigationsleiste auf der linken Seite die Option Monitor und dann Warnungen aus.

  3. Wählen Sie die Schaltfläche „Neue Warnungsregel“ aus, um den Bereich „Warnungsregel erstellen“ zu öffnen.

  4. Füllen Sie den Abschnitt Bereich aus:

    • Öffnen Sie den Bereich Ressource auswählen, und konfigurieren Sie Folgendes:

    • Wählen Sie den Namen Ihres Abonnements aus.

    • Wählen Sie als Ressourcentyp die Option Azure Cosmos DB-Konten aus.

    • Den Speicherort Ihres Azure Cosmos DB-Kontos.

    • Nachdem Sie die Details ausgefüllt haben, wird eine Liste der Azure Cosmos DB-Konten im ausgewählten Bereich angezeigt. Wählen Sie das Konto aus, für das Sie Warnungen konfigurieren möchten, und wählen Sie dann Fertig aus.

  5. Füllen Sie den Abschnitt Bedingung aus:

    • Öffnen Sie den Bereich Bedingung auswählen, um die Seite Signal auswählen zu öffnen, und konfigurieren Sie Folgendes:

    • Wählen Sie Protokoll als Signaltyp aus.

    • Wählen Sie Protokollanalyse als Überwachungsdienst aus.

    • Wählen Sie Benutzerdefinierte Protokollsuche als Signalnamen aus.

    • Fügen Sie im Abfrage-Editor die folgende Abfrage hinzu. Sie können die Abfrage ausführen, um eine Vorschau des Ergebnisses anzuzeigen.

    Hinweis

    Es ist völlig in Ordnung, wenn die Abfrage derzeit keine Ergebnisse zurückgibt. Die PartitionKeyStatistics-Protokolle zeigen nur Daten an, wenn logische Partitionsschlüssel mit erheblicher Speichergröße vorhanden sind. Wenn also keine Ergebnisse zurückgegeben werden, bedeutet dies, dass keine solchen Schlüssel vorhanden sind. Wenn solche Schlüssel in Zukunft angezeigt werden, wird die Warnung ausgelöst.

    CDBPartitionKeyStatistics
    // Get the latest storage size for each logical partition key value
    | summarize arg_max(TimeGenerated, *) by AccountName, DatabaseName, CollectionName, _ResourceId, PartitionKey 
    | extend utilizationOf20GBLogicalPartition = SizeKb / (20.0 * 1024.0 * 1024.0) // Current storage / 20GB
    | project TimeGenerated, AccountName, DatabaseName, CollectionName, _ResourceId, PartitionKey, SizeKb, utilizationOf20GBLogicalPartition
    
    • Wählen Sie Warnungsbearbeitung fortsetzen aus.

    • Gehen Sie im Abschnitt „Messung“ folgendermaßen vor:

      • Wählen Sie utilizationOf20GBLogicalPartition als Measure aus.

      • Wählen Sie Maximum als Aggregationstyp aus.

      • Wählen Sie die gewünschte Aggregationsgranularität basierend auf Ihren Anforderungen aus. In unserem Beispiel wählen wir 1 Stunde aus. Dies bedeutet, dass die Warnung die Speichergröße der logischen Partition mit dem höchsten Speicherwert während der Stunde berechnet.

    • Gehen Sie im Abschnitt „Nach Dimensionen teilen“ folgendermaßen vor:

      • Fügen Sie die folgenden sechs Dimensionen hinzu: AccountName, DatabaseName, CollectionName, _ResourceId, PartitionKey, SizeKb. Dadurch wird sichergestellt, dass Sie beim Auslösen der Warnung das spezifische Azure Cosmos DB-Konto, die Datenbank, die Sammlung und den Partitionsschlüssel identifizieren können, die die Warnung ausgelöst haben.

      • Wählen Sie für die Dimension SizeKb die Option Alle aktuellen und zukünftigen Werte auswählen als Dimensionswerte aus.

      • Für alle anderen Dimensionen:

        • Wenn Sie nur ein bestimmtes Azure Cosmos DB-Konto, eine Datenbank, eine Sammlung oder einen Partitionsschlüssel überwachen möchten, wählen Sie den spezifischen Wert oder Benutzerdefinierten Wert hinzufügen aus, wenn der Wert derzeit nicht in der Dropdownliste angezeigt wird.

        • Wählen Sie andernfalls Alle aktuellen und zukünftigen Werte auswählen aus. Wenn Ihr Azure Cosmos DB-Konto beispielsweise derzeit über zwei Datenbanken und fünf Sammlungen verfügt, wird durch Auswählen aller aktuellen und Featurewerte für die Dimension „Database“ und „CollectionName“ sichergestellt, dass die Warnung für alle vorhandenen Datenbanken und Sammlungen sowie für alle zukünftigen Datenbanken und Sammlungen gilt.

    • Im Abschnitt „Warnungslogik“:

      • Wählen Sie als Operator die Option Größer als aus.

      • Wählen Sie den gewünschten Schwellenwert aus. Basierend auf der Art und Weise, wie wir die Abfrage geschrieben haben, ist ein gültiger Schwellenwert eine Zahl zwischen 0 und 1 (einschließlich). In unserem Beispiel möchten wir die Warnung auslösen, wenn ein logischer Partitionsschlüssel 70 % des zulässigen Speichers erreicht, also geben wir 0,7 ein. Sie können diese Zahl basierend auf Ihren Anforderungen optimieren.

      • Wählen Sie die gewünschte Auswertungshäufigkeit basierend auf Ihren Anforderungen aus. In unserem Beispiel wählen wir 1 Stunde aus. Beachten Sie, dass dieser Wert kleiner oder gleich dem Zeitraum der Warnungsauswertung sein muss.

      Nach Abschluss von Schritt 5 sieht der Abschnitt Bedingung wie im folgenden Beispiel aus.

      Screenshot: Beispielkonfiguration für eine Signallogik

  6. Füllen Sie den Abschnitt Aktionen aus:

    • Wählen Sie eine vorhandene Aktionsgruppe aus, oder erstellen Sie eine neue Aktionsgruppe. Mithilfe einer Aktionsgruppe können Sie die Aktionen definieren, die erfolgen sollen, wenn eine Warnung ausgelöst wird. Erstellen Sie für dieses Beispiel eine neue Aktionsgruppe, um bei Auslösen der Warnung eine E-Mail-Benachrichtigung zu erhalten. Öffnen Sie den Bereich Aktionsgruppe erstellen.

    • Im Abschnitt Grundeinstellungen:

      • Wählen Sie das Abonnement und die Ressourcengruppe aus, in der diese Aktionsgruppe erstellt werden soll.

      • Aktionsgruppenname: Der Name der Aktionsgruppe muss innerhalb einer Ressourcengruppe eindeutig sein.

      • Anzeigename: Dieser Wert ist in E-Mail- und SMS-Benachrichtigungen enthalten, um anzugeben, welche Aktionsgruppe die Quelle für die Benachrichtigung war.

    • Im Abschnitt Benachrichtigungen:

      • Geben Sie einen Namen für die Benachrichtigung an.

      • Wählen Sie E-Mail/SMS-Nachricht/Push/Sprache als Benachrichtigungstyp aus, und geben Sie Ihre E-Mail-, SMS-, Pushbenachrichtigungs- oder Sprachinformationen ein.

    • Optional: Im Abschnitt Aktionen können Sie eine Aktion auswählen, die ausgeführt wird, z. B. eine Azure-Funktion oder Logik-App im Abschnitt Aktionen.

    • Wählen Sie dann zum Erstellen der Aktionsgruppe Überprüfen + erstellen aus.

  7. Füllen Sie den Abschnitt Details aus:

    • Definieren Sie einen Namen für die Warnung, geben Sie eine optionale Beschreibung und den Schweregrad der Warnung an, und wählen Sie aus, ob die Regel bei der Regelerstellung aktiviert werden soll.
    • Wählen Sie Überprüfen + erstellen und dann Erstellen aus, um die Erstellung der Warnung abzuschließen.

Nachdem die Warnung erstellt wurde, wird sie innerhalb von zehn Minuten aktiv.

Beispiel für Warnung

So zeigen Sie Ihre Warnungen im Azure-Portal an:

  1. Melden Sie sich beim Azure-Portal an.

  2. Wählen Sie in der Navigationsleiste auf der linken Seite die Option Monitor und dann Warnungen aus.

Wenn die Warnung ausgelöst wird, enthält sie Folgendes:

  • Name des Datenbankkontos
  • Datenbankname
  • Sammlungsname
  • Logischer Partitionsschlüssel
  • Speicher des logischen Partitionsschlüssels in KB
  • Auslastung des Grenzwerts von 20 GB

In der unten ausgelösten Warnung sehen wir beispielsweise, dass die logische Partition „ContosoTenant“ 0,78 des Speicherlimits für logische Partitionen von 20 GB erreicht hat, mit 16 GB an Daten in einer bestimmten Datenbank und Sammlung.

Screenshot: Auslösen einer Warnung, wenn die Schlüsselgröße der logischen Partition den Schwellenwert überschreitet

Schritte zur Bereinigung

Wenn die Größenbeschränkung für logische Partitionen von 20 GB erreicht ist, können Sie keine weiteren Daten in diese logische Partition schreiben. Daher wird empfohlen, Ihre Anwendung mit einem anderen Partitionsschlüssel als langfristige Lösung zu überarbeiten.

Um Zeit dafür zu gewinnen, können Sie eine vorübergehende Erhöhung der Grenze für logische Partitionsschlüssel für Ihre vorhandene Anwendung anfordern. Erstellen Sie ein Azure-Supportticket, und wählen Sie den Kontingenttyp aus. Erhöhen Sie die Größe des logischen Partitionsschlüssels des Containers vorübergehend. Beachten Sie, dass dies als vorübergehende Entschärfung und nicht als langfristige Lösung empfohlen wird, da SLA-Garantien beim Erhöhen des Grenzwerts nicht beachtet werden. Um die Konfiguration zu entfernen, reichen Sie ein Support-Ticket ein und wählen Sie den Kontingenttyp Schlüsselgröße der logischen Partition des Containers auf Standardwert (20 GB) zurücksetzen aus. Dies kann geschehen, nachdem Sie entweder Daten gelöscht haben, um die Beschränkung auf logische Partitionen auf 20 GB zu begrenzen, oder ihre Anwendung mit einem anderen Partitionsschlüssel überarbeitet haben.

Informationen zu bewährten Methoden für die Verwaltung von Workloads, bei denen Partitionsschlüssel höhere Grenzwerte für Speicher oder Durchsatz erfordern, finden Sie unter Erstellen eines synthetischen Partitionsschlüssels.

Nächste Schritte