Övervaka och felsöka med insikter i Azure Cosmos DB

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

Azure Cosmos DB ger insikter om dataflöde, lagring, konsekvens, tillgänglighet och svarstid. Azure-portalen innehåller en sammanställd vy över dessa mått. Du kan också Visa Azure Cosmos DB-mått från Azure Monitor-API:et. Dimensionsvärdena för mått som containernamn är skiftlägesokänsliga. Därför måste du använda skiftlägesokänslig jämförelse när du gör strängjämförelser på dessa dimensionsvärden. Information om hur du visar mått från Azure Monitor finns i Övervaka Azure Cosmos DB.

Den här artikeln går igenom vanliga användningsfall och hur Azure Cosmos DB-insikter kan användas för att analysera och felsöka dessa problem. Som standard samlas måttinsikterna in var femte minut och sparas i sju dagar.

Visa insikter från Azure Portal

  1. Logga in på Azure Portal och gå till ditt Azure Cosmos DB-konto.

  2. Du kan visa dina kontomått antingen från fönstret Mått eller fönstret Insikter .

    • Statistik: Det här fönstret innehåller numeriska mått som samlas in med jämna mellanrum och beskriver någon aspekt av ett system vid en viss tidpunkt. Du kan till exempel visa och övervaka måttet för svarstid på serversidan, normaliserat användningsmått för begärandeenheter osv.

    • Insikter: Det här fönstret ger en anpassad övervakningsupplevelse för Azure Cosmos DB. Insikter använder samma mått och loggar som samlas in i Azure Monitor och visar en aggregerad vy för ditt konto.

  3. Öppna fönstret Insikter . Som standard visar fönstret Insikter dataflöde, begäranden, lagring, tillgänglighet, svarstid, system och hanteringsåtgärder för varje container i ditt konto. Du kan välja tidsintervall, databas och container som du vill visa insikter för. På fliken Översikt visas RU/s-användning, dataanvändning, indexanvändning, begränsade begäranden och normaliserad RU/s-förbrukning för den valda databasen och containern.

    Skärmbild av Prestandamått för Azure Cosmos DB i Azure Portal.

  4. Följande mått är tillgängliga i fönstret Insikter :

    • Dataflöde. Den här fliken visar det totala antalet enheter för programbegäran som förbrukats eller misslyckats (429 svarskod) eftersom dataflödet eller lagringskapaciteten som etablerats för containern har överskridits.

    • Begäranden. Den här fliken visar det totala antalet begäranden som bearbetas av statuskoden, efter åtgärdstyp och antalet misslyckade begäranden (429 svarskod). Begäranden misslyckas när dataflödet eller lagringskapaciteten som etablerats för containern överskrider.

    • Lagring. På den här fliken visas storleken på data- och indexanvändningen under den valda tidsperioden.

    • Tillgänglighet. Den här fliken visar procentandelen lyckade begäranden över det totala antalet begäranden per timme. Azure Cosmos DB-serviceavtalen definierar framgångsfrekvensen.

    • Svarstid. Den här fliken visar svarstiden för läsning och skrivning som observerats av Azure Cosmos DB i den region där ditt konto används. Du kan visualisera svarstid mellan regioner för ett geo-replikerat konto. Du kan också visa svarstid på serversidan med olika åtgärder. Det här måttet representerar inte svarstiden för begäran från slutpunkt till slutpunkt.

    • System. Den här fliken visar hur många metadatabegäranden som den primära partitionen hanterar. Det hjälper också till att identifiera begränsade begäranden.

    • Hanteringsåtgärder. Den här fliken visar måtten för kontohanteringsaktiviteter som kontoskapande, borttagning, nyckeluppdateringar, nätverk och replikeringsinställningar.

I följande avsnitt beskrivs vanliga scenarier där du kan använda Azure Cosmos DB-mått.

Förstå hur många begäranden som lyckas eller orsakar fel

Kom igång genom att gå till Azure Portal och gå till fönstret Insikter. Öppna fliken Begäranden i det här fönstret. Fliken Begäranden visar ett diagram med det totala antalet begäranden segmenterade efter statuskod och åtgärdstyp. Mer information om HTTP-statuskoder finns i HTTP-statuskoder för Azure Cosmos DB.

Den vanligaste felstatuskoden är 429 (hastighetsbegränsning). Det här felet innebär att begäranden till Azure Cosmos DB är mer än det etablerade dataflödet. Den vanligaste lösningen på det här problemet är att skala upp RU:erna för den angivna samlingen. Mer information finns i Introduktion till etablerat dataflöde i Azure Cosmos DB

Skärmbild som visar totalt antal begäranden efter statuskod, begränsade begäranden och totalt antal begäranden efter åtgärdstyp.

Fastställa dataflödesförbrukningen efter ett partitionsnyckelintervall

Att ha en bra kardinalitet för dina partitionsnycklar är viktigt för alla skalbara program. Om du vill fastställa dataflödesdistributionen för en partitionerad container uppdelad efter partitionsnyckelintervall-ID:t går du till fönstret Insikter . Öppna fliken Dataflöde . Normaliserad RU/s-förbrukning över olika partitionsnyckelintervall visas i diagrammet.

Skärmbild av fliken Dataflöde som visar RU/s-förbrukningen.

Med hjälp av det här diagrammet kan du identifiera om det finns en frekvent partition. En ojämn dataflödesdistribution kan orsaka frekventa partitioner, vilket kan leda till begränsade begäranden och kan kräva ompartitionering. När du har identifierat vilken partitionsnyckel som orsakar snedställning i distributionen kan du behöva partitionera om containern med en mer distribuerad partitionsnyckel. Mer information om partitionering i Azure Cosmos DB finns i Partitionering och horisontell skalning i Azure Cosmos DB.

Fastställa data- och indexanvändningen

Det är viktigt att fastställa lagringsdistributionen av alla partitionerade containrar efter dataanvändning, indexanvändning och dokumentanvändning. Du kan minimera indexanvändningen, maximera dataanvändningen och optimera dina frågor. Om du vill hämta dessa data går du till fönstret Insikter och öppnar fliken Lagring .

Skärmbild av fönstret Insikter som markerar fliken Lagring.

Jämför datastorlek mot indexstorlek

I Azure Cosmos DB är den totala förbrukade lagringen kombinationen av både datastorlek och indexstorlek. Indexstorleken är vanligtvis en bråkdel av datastorleken. Mer information finns i artikeln Indexstorlek . I fönstret Mått i Azure Portal visar fliken Lagring uppdelningen av lagringsförbrukningen baserat på data och index.

// Measure the document size usage (which includes the index size)  
ResourceResponse<DocumentCollection> collectionInfo = await client.ReadDocumentCollectionAsync(UriFactory.CreateDocumentCollectionUri("db", "coll"));
 Console.WriteLine("Document size quota: {0}, usage: {1}", collectionInfo.DocumentQuota, collectionInfo.DocumentUsage);

Om du vill spara indexutrymme kan du justera indexeringsprincipen.

Felsöka långsamma frågor

I API:et för NoSQL SDK:er tillhandahåller Azure Cosmos DB frågekörningsstatistik.

IDocumentQuery<dynamic> query = client.CreateDocumentQuery(
 UriFactory.CreateDocumentCollectionUri(DatabaseName, CollectionName),
 "SELECT * FROM c WHERE c.city = 'Seattle'",
 new FeedOptions
 {
 PopulateQueryMetrics = true,
 MaxItemCount = -1,
 MaxDegreeOfParallelism = -1,
 EnableCrossPartitionQuery = true
 }).AsDocumentQuery();
FeedResponse<dynamic> result = await query.ExecuteNextAsync();

// Returns metrics by partition key range Id
IReadOnlyDictionary<string, QueryMetrics> metrics = result.QueryMetrics;

QueryMetrics innehåller information om hur lång tid det tog för varje komponent i frågan att köras. Den vanligaste rotorsaken till långvariga frågor är genomsökningar, vilket innebär att frågan inte kunde tillämpa indexen. Det här problemet kan lösas med ett bättre filtervillkor.

Övervaka kontrollplansbegäranden

Azure Cosmos DB tillämpar gränser för antalet metadatabegäranden som kan göras under 5 minuters intervall i följd. Kontrollplansbegäranden som överskrider dessa gränser kan uppleva begränsningar. Metadatabegäranden kan i vissa fall förbruka dataflöde mot ett master partition inom ett konto som innehåller alla ett kontos metadata. Kontrollplansbegäranden som går över dataflödesbeloppet kommer att uppleva hastighetsbegränsning (429s).

Kom igång genom att gå till Azure Portal och gå till fönstret Insikter. Öppna fliken System i det här fönstret. Fliken System visar två diagram. En som visar alla metadatabegäranden för ett konto. Den andra visar dataflödesförbrukning för metadatabegäranden från kontot som master partition lagrar ett kontos metadata.

Skärmbild av fönstret Insikter med diagrammet metadatabegäranden markerad på fliken System.

Skärmbild av fönstret Insikter och markering av diagrammet metadatabegäranden 429 på fliken System.

Diagrammet Metadatabegäran efter statuskod ovan aggregerar begäranden med ökad kornighet när du ökar tidsintervallet. Det största tidsintervallet som du kan använda för en tidsintervall på 5 minuter är 4 timmar. Om du vill övervaka metadatabegäranden över ett större tidsintervall med specifik kornighet använder du Azure Metrics. Skapa ett nytt diagram och välj Mått för metadatabegäranden. I det övre högra hörnet väljer du 5 minuter för Tidskornighet enligt nedan. Mått gör det också möjligt för användare att skapa aviseringar på dem, vilket gör dem mer användbara än insikter.

Skärmbild av fönstret Mått med metadatabegäranden för ett konto och en tidskornighet på 5 minuter.

Nästa steg

Du kanske vill lära dig mer om att förbättra databasens prestanda genom att läsa följande artiklar: