Dela via


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

GÄLLER FÖR: NoSQL MongoDB Kassandra Gremlin Bord

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åtten, till exempel containernamn, är skiftlägeskä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-portalen

  1. Logga in på Azure-portalen 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 .

    • Mått: 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ärandeenheten 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 det tidsintervall, den databas och den container som du vill visa insikter för. Fliken Översikt visar 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-portalen.

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

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

    • Requests. På den här fliken visas det totala antalet begäranden som bearbetas efter statuskod, efter åtgärdstyp och antalet misslyckade begäranden (429 svarskod). Begäranden misslyckas när dataflödet eller lagringskapaciteten som har 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. Serviceavtalen för Azure Cosmos DB definierar framgångsgraden.

    • Svarstid. På den här fliken visas svarstiden för läsning och skrivning som observerats av Azure Cosmos DB i den region där ditt konto körs. 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 de begränsade begärandena.

    • Hanteringsåtgärder. På den här fliken visas 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-portalen 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/begrä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 per åtgärdstyp.

Fastställa dataflödesförbrukningen med 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 för 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 skevhet 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 för 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öra datastorlek mot indexstorlek

I Azure Cosmos DB är den totala förbrukade lagringen kombinationen av både datastorleken och indexstorleken. Indexstorleken är vanligtvis en bråkdel av datastorleken. Mer information finns i artikeln Indexstorlek . I fönstret Mått i Azure-portalen 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 varje komponent i frågan tog att köra. 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 på varandra följande 5 minuters intervall. Kontrollplansbegäranden som överskrider dessa gränser kan uppleva begränsning. Metadatabegäranden kan i vissa fall förbruka dataflöde mot ett master partition konto som innehåller alla metadata för ett konto. Kontrollplansbegäranden som går över dataflödesbeloppet kommer att uppleva hastighetsbegränsning (429-talet).

Kom igång genom att gå till Azure-portalen 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 som markerar diagrammet metadatabegäranden på fliken System.

Skärmbild av fönstret Insikter som markerar diagrammet för metadatabegäranden 429 på fliken System.

Diagrammet Metadatabegäran efter statuskod ovan aggregerar begäranden vid ö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 Insights.

Skärmbild av fönstret Mått som markerar 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 databasprestanda genom att läsa följande artiklar: