Skapa aviseringar för att övervaka om lagringen för en logisk partitionsnyckel närmar sig 20 GB

GÄLLER FÖR: Nosql Mongodb Cassandra Gremlin Tabell

Azure Cosmos DB tillämpar en maximal nyckelstorlek för logisk partition på 20 GB. Om du till exempel har en container/samling partitionerad av UserId kan data i den logiska partitionen "Alice" lagra upp till 20 GB data.

Du kan använda aviseringar för att övervaka om du har några logiska partitionsnycklar som närmar sig gränsen på 20 GB logiska partitioner. Aviseringar kan skicka dig ett meddelande i form av ett e-postmeddelande eller köra en åtgärd, till exempel en Azure-funktion eller logikapp, när villkoret utlöses.

I den här artikeln skapar vi en avisering som utlöses om lagringen för en logisk partitionsnyckel överskrider 70 % av gränsen på 20 GB (har mer än 14 GB lagringsutrymme). Du kan konfigurera aviseringar från fönstret Aviseringar i ett specifikt Azure Cosmos DB-konto eller Azure Monitor-tjänsten i Azure Portal. Båda gränssnitten erbjuder samma alternativ. Den här artikeln visar hur du konfigurerar aviseringen från Azure Monitor.

Förutsättningar

Vi kommer att använda data från loggkategorin PartitionKeyStatistics i diagnostikloggar för att skapa aviseringen. Diagnostikloggar är en opt-in-funktion, så du måste aktivera den innan du fortsätter. I vårt exempel använder vi det rekommenderade alternativet Resursspecifika loggar.

Följ anvisningarna i Övervaka Azure Cosmos DB-data med hjälp av diagnostikinställningar i Azure för att säkerställa:

  • Diagnostikloggar är aktiverade på de Azure Cosmos DB-konton som du vill övervaka
  • Du har konfigurerat en samling av loggkategorin PartitionKeyStatistics
  • Diagnostikloggarna skickas till en Log Analytics-arbetsyta

Skapa aviseringen

  1. Logga in på Azure Portal.

  2. Välj Övervaka i det vänstra navigeringsfältet och välj Aviseringar.

  3. Välj knappen Ny aviseringsregel för att öppna fönstret Skapa aviseringsregel.

  4. Fyll i avsnittet Omfång :

    • Öppna fönstret Välj resurs och konfigurera följande:

    • Välj ditt prenumerationsnamn .

    • Välj Azure Cosmos DB-konton som resurstyp.

    • Platsen för ditt Azure Cosmos DB-konto.

    • När du har fyllt i informationen visas en lista över Azure Cosmos DB-konton i det valda omfånget. Välj den som du vill konfigurera aviseringar för och välj Klar.

  5. Fyll i avsnittet Villkor :

    • Öppna fönstret Välj villkor för att öppna sidan Välj en signal och konfigurera följande:

    • Välj Logg som Signaltyp.

    • Välj Log Analytics som Övervakningstjänst.

    • Välj Anpassad loggsökning för Signalnamn.

    • Lägg till frågan nedan i frågeredigeraren. Du kan köra frågan för att förhandsgranska resultatet.

    Anteckning

    Det är helt ok om frågan för närvarande inte returnerar några resultat. PartitionKeyStatistics-loggarna visar bara data om det finns logiska partitionsnycklar med betydande lagringsstorlek, så om inga resultat returneras innebär det att det inte finns några sådana nycklar. Om och när sådana nycklar visas i framtiden utlöses aviseringen.

    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
    
    • Välj Fortsätt redigera avisering.

    • I avsnittet Mått:

      • Välj utilizationOf20GBLogicalPartition för Mått.

      • Välj Maximum för Sammansättningstyp.

      • Välj önskad sammansättningskornighet baserat på dina krav. I vårt exempel väljer vi 1 timme. Det innebär att aviseringen beräknar lagringsstorleken för den logiska partitionen med det högsta lagringsvärdet i timmen.

    • I avsnittet Dela efter dimensioner:

      • Lägg till följande sex dimensioner: AccountName, DatabaseName, CollectionName, _ResourceId, PartitionKey, SizeKb. Detta säkerställer att när aviseringen utlöses kan du identifiera det specifika Azure Cosmos DB-konto, den databas, den samling och den partitionsnyckel som utlöste aviseringen.

      • För Dimension SizeKb väljer du Välj alla aktuella och framtida värden som Dimensionsvärden.

      • För alla andra dimensioner:

        • Om du bara vill övervaka ett specifikt Azure Cosmos DB-konto, databas, samling eller partitionsnyckel väljer du det specifika värdet eller Lägg till anpassat värde om värdet för närvarande inte visas i listrutan.

        • Annars väljer du Välj alla aktuella och framtida värden. Om ditt Azure Cosmos DB-konto till exempel för närvarande har två databaser och fem samlingar ser du till att aviseringen gäller för alla befintliga databaser och samlingar, samt alla som du kan skapa i framtiden, om du väljer alla aktuella och funktionsvärden för dimensionen Database och CollectionName.

    • I avsnittet Aviseringslogik:

      • Välj Större än för Operator.

      • Välj önskat tröskelvärde. Baserat på hur vi har skrivit frågan är ett giltigt tröskelvärde ett tal mellan 0 och 1 (inklusive). I vårt exempel vill vi utlösa aviseringen om en logisk partitionsnyckel når 70 % av den tillåtna lagringen, så vi anger 0,7. Du kan justera det här numret baserat på dina krav.

      • Välj önskad utvärderingsfrekvens baserat på dina krav. I vårt exempel väljer vi 1 timme. Observera att det här värdet måste vara mindre än eller lika med aviseringsutvärderingsperioden.

      När du har slutfört steg 5 ser avsnittet Villkor ut som i exemplet nedan.

      Skärmbild av en exempelkonfiguration för signallogik

  6. Fyll i avsnittet Åtgärder :

    • Välj en befintlig åtgärdsgrupp eller skapa en ny åtgärdsgrupp. Med en åtgärdsgrupp kan du definiera vilka åtgärder som ska vidtas när aviseringen utlöses. I det här exemplet skapar du en ny åtgärdsgrupp för att få ett e-postmeddelande när aviseringen utlöses. Öppna fönstret Skapa åtgärdsgrupp .

    • I avsnittet Grundläggande :

      • Välj den prenumeration och resursgrupp där den här åtgärdsgruppen ska skapas.

      • Namn på åtgärdsgrupp – Namnet på åtgärdsgruppen måste vara unikt i en resursgrupp.

      • Visningsnamn – Det här värdet ingår i e-post- och SMS-meddelanden för att identifiera vilken åtgärdsgrupp som var källan till meddelandet.

    • I avsnittet Meddelanden :

      • Ange ett namn för meddelandet.

      • Välj Email/SMS-meddelande/Push/Röst som Meddelandetyp och ange din e-post-, SMS-, push-meddelande- eller röstinformation.

    • Valfritt: I avsnittet Åtgärder kan du välja en åtgärd som ska köras, till exempel en Azure-funktion eller logikapp i avsnittet Åtgärder .

    • Välj Granska + skapa för att skapa åtgärdsgruppen.

  7. Fyll i avsnittet Information :

    • Definiera ett namn för aviseringen, ange en valfri beskrivning, aviseringens allvarlighetsgrad och välj om du vill aktivera regeln när regeln skapas.
    • Välj Granska + skapa och välj Skapa för att slutföra skapandet av aviseringen.

När du har skapat aviseringen är den aktiv inom 10 minuter.

Exempelavisering

Så här ser du aviseringarna i Azure Portal:

  1. Logga in på Azure Portal.

  2. Välj Övervaka i det vänstra navigeringsfältet och välj Aviseringar.

När aviseringen utlöses innehåller den:

  • Databaskontonamn
  • Databasnamn
  • Samlingsnamn
  • Logisk partitionsnyckel
  • Lagring i kB för den logiska partitionsnyckeln
  • Användning av gränsen på 20 GB

I aviseringen som utlöstes nedan ser vi till exempel att den logiska partitionen "ContosoTenant" har nått 0,78 av lagringsgränsen på 20 GB logisk partition, med 16 GB data i en viss databas och samling.

Skärmbild av en avisering som utlöstes när nyckelstorleken för den logiska partitionen överskrider tröskelvärdet

Reparationssteg

När storleksgränsen på 20 GB för logiska partitioner har uppnåtts kan du inte skriva mer data till den logiska partitionen. Därför rekommenderar vi att du arkitekturerar om ditt program med en annan partitionsnyckel som en långsiktig lösning.

För att ge tid för detta kan du begära en tillfällig ökning av den logiska partitionsnyckelgränsen för ditt befintliga program. Skapa en Azure Support och välj kvottyp Tillfällig ökning av containerns nyckelstorlek för logisk partition. Observera att detta är avsett som en tillfällig åtgärd och rekommenderas inte som en långsiktig lösning, eftersom SLA-garantier inte uppfylls när gränsen höjs. Om du vill ta bort konfigurationen skapar du ett supportärende och väljer kvottypen Återställ containerns nyckelstorlek för logisk partition till standardvärdet (20 GB) . Detta kan göras när du antingen har tagit bort data för att passa gränsen på 20 GB logiska partitioner eller omarbetat programmet med en annan partitionsnyckel.

Du kan läsa mer om metodtips för att hantera arbetsbelastningar med partitionsnycklar som behöver högre gränser för lagring eller dataflöde i Skapa en syntetisk partitionsnyckel.

Nästa steg