Delen via


Bewaken en fouten opsporen met inzichten in Azure Cosmos DB

VAN TOEPASSING OP: NoSQL MongoDB Cassandra Gremlin Tafel

Azure Cosmos DB biedt inzicht in doorvoer, opslag, consistentie, beschikbaarheid en latentie. De Azure-portal biedt een geaggregeerde weergave van deze metrische gegevens. U kunt ook metrische gegevens uit Azure Cosmos DB bekijken vanuit de Azure Monitor API. De dimensiewaarden voor de metrische gegevens, zoals containernaam, zijn niet hoofdlettergevoelig. Daarom moet u hoofdlettergevoelige vergelijkingen gebruiken bij het uitvoeren van tekenreeksvergelijkingen op deze dimensiewaarden. Zie Azure Cosmos DB bewaken voor meer informatie over het weergeven van metrische gegevens van Azure Monitor.

In dit artikel worden veelvoorkomende use cases beschreven en wordt uitgelegd hoe Azure Cosmos DB-inzichten kunnen worden gebruikt om deze problemen te analyseren en op te sporen. De metrische inzichten worden standaard om de vijf minuten verzameld en worden zeven dagen bewaard.

Inzichten weergeven vanuit De Azure-portal

  1. Meld u aan bij Azure Portal en navigeer naar uw Azure Cosmos DB-account.

  2. U kunt de metrische gegevens van uw account weergeven vanuit het deelvenster Metrische gegevens of het deelvenster Inzichten .

    • Metrische gegevens: dit deelvenster bevat numerieke metrische gegevens die regelmatig worden verzameld en een bepaald aspect van een systeem op een bepaald tijdstip worden beschreven. U kunt bijvoorbeeld de metrische gegevens over latentie aan de serverzijde, genormaliseerd gebruik van aanvraageenheden bekijken en bewaken, enzovoort.

    • Inzichten: Dit deelvenster biedt een aangepaste bewakingservaring voor Azure Cosmos DB. Inzichten gebruiken dezelfde metrische gegevens en logboeken die worden verzameld in Azure Monitor en geven een geaggregeerde weergave weer voor uw account.

  3. Open het deelvenster Inzichten . In het deelvenster Inzichten worden standaard de metrische gegevens over doorvoer, aanvragen, opslag, beschikbaarheid, latentie, systeem en beheerbewerkingen weergegeven voor elke container in uw account. U kunt het tijdsbereik, de database en de container selecteren waarvoor u inzichten wilt weergeven. Op het tabblad Overzicht ziet u het gebruik van RU/s, gegevensgebruik, indexgebruik, beperkte aanvragen en genormaliseerd RU/s-verbruik voor de geselecteerde database en container.

    Schermopname van metrische gegevens over de prestaties van Azure Cosmos DB in Azure Portal.

  4. De volgende metrische gegevens zijn beschikbaar in het deelvenster Inzichten :

    • Doorvoer. Op dit tabblad ziet u het totale aantal verbruikte of mislukte aanvraageenheden (429-antwoordcode) omdat de doorvoer of opslagcapaciteit die voor de container is ingericht, is overschreden.

    • Requests. Op dit tabblad ziet u het totale aantal aanvragen dat wordt verwerkt per statuscode, per bewerkingstype en het aantal mislukte aanvragen (429-antwoordcode). Aanvragen mislukken wanneer de doorvoer of opslagcapaciteit die voor de container is ingericht, wordt overschreden.

    • Opslag. Dit tabblad toont de grootte van het gegevens- en indexgebruik gedurende de geselecteerde periode.

    • Beschikbaarheid. Op dit tabblad wordt het percentage geslaagde aanvragen weergegeven ten opzichte van het totale aantal aanvragen per uur. De SLA's van Azure Cosmos DB definiëren het slagingspercentage.

    • Latentie. Dit tabblad toont de lees- en schrijflatentie die door Azure Cosmos DB wordt waargenomen in de regio waar uw account actief is. U kunt latentie visualiseren tussen regio's voor een geografisch gerepliceerd account. U kunt ook latentie aan de serverzijde weergeven door verschillende bewerkingen. Deze metrische waarde vertegenwoordigt niet de end-to-end aanvraaglatentie.

    • Systeem. Op dit tabblad ziet u hoeveel metagegevensaanvragen de primaire partitie dient. Het helpt ook om de vertraagde aanvragen te identificeren.

    • Beheerbewerkingen. Dit tabblad bevat de metrische gegevens voor accountbeheeractiviteiten, zoals het maken, verwijderen, sleutelupdates, netwerk- en replicatie-instellingen.

In de volgende secties worden veelvoorkomende scenario's beschreven waarin u metrische gegevens van Azure Cosmos DB kunt gebruiken.

Begrijpen hoeveel aanvragen slagen of fouten veroorzaken

Als u aan de slag wilt gaan, gaat u naar Azure Portal en gaat u naar het deelvenster Inzichten . Open vanuit dit deelvenster het tabblad Aanvragen . Op het tabblad Aanvragen ziet u een grafiek met het totale aantal aanvragen dat is gesegmenteerd op basis van de statuscode en het bewerkingstype. Zie HTTP-statuscodes voor Azure Cosmos DB voor meer informatie over HTTP-statuscodes.

De meest voorkomende foutcode is 429 (snelheidsbeperking/bandbreedtebeperking). Deze fout betekent dat aanvragen voor Azure Cosmos DB meer zijn dan de ingerichte doorvoer. De meest voorkomende oplossing voor dit probleem is het omhoog schalen van de RU's voor de opgegeven verzameling. Zie Inleiding tot ingerichte doorvoer in Azure Cosmos DB voor meer informatie

Schermopname van het totale aantal aanvragen per statuscode, vertraagde aanvragen en het totale aantal aanvragen per bewerkingstype.

Het doorvoerverbruik bepalen op basis van een partitiesleutelbereik

Het hebben van een goede kardinaliteit van uw partitiesleutels is essentieel voor elke schaalbare toepassing. Als u de doorvoerdistributie van een gepartitioneerde container wilt bepalen, opgesplitst op partitiesleutelbereik-id's, gaat u naar het deelvenster Inzichten . Open het tabblad Doorvoer . Het genormaliseerde RU/s-verbruik in verschillende partitiesleutelbereiken wordt weergegeven in de grafiek.

Schermopname van het tabblad Doorvoer, met het RU/s-verbruik.

Met behulp van deze grafiek kunt u vaststellen of er een dynamische partitie is. Een ongelijke doorvoerdistributie kan dynamische partities veroorzaken, wat kan leiden tot beperkte aanvragen en mogelijk opnieuw partitioneren vereist. Nadat u hebt geïdentificeerd welke partitiesleutel de scheefheid in de distributie veroorzaakt, moet u de container mogelijk opnieuw partitioneren met een meer gedistribueerde partitiesleutel. Zie Partitionering en horizontaal schalen in Azure Cosmos DB voor meer informatie over partitionering in Azure Cosmos DB.

Het gegevens- en indexgebruik bepalen

Het is belangrijk om de opslagdistributie van een gepartitioneerde container te bepalen op basis van gegevensgebruik, indexgebruik en documentgebruik. U kunt het indexgebruik minimaliseren, het gegevensgebruik maximaliseren en uw query's optimaliseren. Als u deze gegevens wilt ophalen, gaat u naar het deelvenster Inzichten en opent u het tabblad Opslag .

Schermopname van het deelvenster Inzichten, waarin het tabblad Opslag wordt gemarkeerd.

Gegevensgrootte vergelijken met indexgrootte

In Azure Cosmos DB is de totale verbruikte opslag de combinatie van zowel de gegevensgrootte als de indexgrootte. Normaal gesproken is de indexgrootte een fractie van de gegevensgrootte. Zie het artikel Indexgrootte voor meer informatie. In het deelvenster Metrische gegevens in Azure Portal toont het tabblad Storage de uitsplitsing van het opslagverbruik op basis van gegevens en indexen.

// 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);

Als u indexruimte wilt besparen, kunt u het indexeringsbeleid aanpassen.

Fouten opsporen in trage query's

In de API voor NoSQL SDK's biedt Azure Cosmos DB queryuitvoeringsstatistieken.

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 bevat details over hoe lang elk onderdeel van de query heeft geduurd om uit te voeren. De meest voorkomende hoofdoorzaak voor langlopende query's is scans, wat betekent dat de query de indexen niet kan toepassen. Dit probleem kan worden opgelost met een betere filtervoorwaarde.

Aanvragen van besturingsvlak bewaken

Azure Cosmos DB past limieten toe voor het aantal metagegevensaanvragen dat kan worden gedaan via opeenvolgende intervallen van vijf minuten. Aanvragen van besturingsvlak die deze limieten overschrijden, kunnen beperkingen ondervinden. Metagegevensaanvragen kunnen in sommige gevallen doorvoer verbruiken voor een master partition account dat alle metagegevens van een account bevat. Aanvragen van het besturingsvlak die de doorvoerhoeveelheid overschrijden, ondervinden snelheidslimieten (429s).

Als u aan de slag wilt gaan, gaat u naar Azure Portal en gaat u naar het deelvenster Inzichten . Open vanuit dit deelvenster het tabblad Systeem . Op het tabblad Systeem worden twee grafieken weergegeven. Een met alle metagegevensaanvragen voor een account. De tweede toont het verbruik van doorvoeraanvragen voor metagegevens van het account master partition waarin de metagegevens van een account worden opgeslagen.

Schermopname van het deelvenster Inzichten, waarin de grafiek met metagegevensaanvragen op het tabblad Systeem wordt gemarkeerd.

Schermopname van het deelvenster Inzichten, waarin de grafiek met metagegevensaanvragen 429 op het tabblad Systeem wordt gemarkeerd.

In de grafiek metagegevensaanvraag op statuscode hierboven worden aanvragen geaggregeerd bij het vergroten van de granulariteit wanneer u het tijdsbereik verhoogt. Het grootste tijdsbereik dat u voor een tijdsbak van 5 minuten kunt gebruiken, is 4 uur. Als u aanvragen voor metagegevens gedurende een groter tijdsbereik met specifieke granulariteit wilt bewaken, gebruikt u Metrische gegevens van Azure. Maak een nieuwe grafiek en selecteer metrische gegevens voor metagegevensaanvragen. Selecteer in de rechterbovenhoek vijf minuten voor tijdgranulariteit, zoals hieronder wordt weergegeven. Metrische gegevens bieden gebruikers ook de mogelijkheid om waarschuwingen voor hen te maken, waardoor ze nuttiger zijn dan Inzichten.

Schermopname van het deelvenster Metrische gegevens, waarin de metagegevensaanvragen voor een account en tijdgranulariteit van 5 minuten worden gemarkeerd.

Volgende stappen

Mogelijk wilt u meer informatie over het verbeteren van de databaseprestaties door de volgende artikelen te lezen: