Share via


Bewaken en fouten opsporen met inzichten in Azure Cosmos DB

VAN TOEPASSING OP: Nosql MongoDB Cassandra Gremlin Tabel

Azure Cosmos DB biedt inzichten voor 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 een niet-hoofdlettergevoelige vergelijking gebruiken bij het vergelijken van tekenreeksen voor deze dimensiewaarden. Zie Azure Cosmos DB bewaken voor meer informatie over het weergeven van metrische gegevens van Azure Monitor.

In dit artikel worden veelvoorkomende gebruiksvoorbeelden 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 elke vijf minuten verzameld en worden zeven dagen bewaard.

Inzichten van Azure Portal weergeven

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

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

  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 ru/s-gebruik, gegevensgebruik, indexgebruik, beperkte aanvragen en genormaliseerd RU/s-verbruik voor de geselecteerde database en container.

    Schermopname van metrische prestatiegegevens van Azure Cosmos DB in de 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 verwerkte aanvragen 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. Op dit tabblad ziet u de grootte van het gegevens- en indexgebruik gedurende de geselecteerde periode.

    • Beschikbaarheid. Op dit tabblad ziet u het percentage geslaagde aanvragen ten opzichte van het totale aantal aanvragen per uur. De Azure Cosmos DB-SLA's bepalen het slagingspercentage.

    • Latentie. Op dit tabblad ziet u de lees- en schrijflatentie die wordt waargenomen door Azure Cosmos DB in de regio waarin uw account actief is. U kunt latentie tussen regio's visualiseren voor een geo-gerepliceerd account. U kunt ook latentie aan de serverzijde weergeven door verschillende bewerkingen. Deze metrische waarde vertegenwoordigt niet de end-to-end latentie van aanvragen.

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

    • Beheerbewerkingen. Op dit tabblad ziet u de metrische gegevens voor accountbeheeractiviteiten, zoals het maken, verwijderen van accounts, sleutelupdates, netwerk- en replicatie-instellingen.

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

Inzicht in het aantal aanvragen dat slaagt of fouten veroorzaakt

Als u wilt beginnen, gaat u naar de 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, gesegmenteerd op statuscode en 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 totaal 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, onderverdeeld naar id's van partitiesleutelbereiken, 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 bepalen of er een dynamische partitie is. Een ongelijke doorvoerdistributie kan leiden tot dynamische partities, wat kan leiden tot beperkte aanvragen en mogelijk opnieuw partitioneren. Nadat u hebt vastgesteld welke partitiesleutel de ongelijkheid in de distributie veroorzaakt, moet u uw 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, met het tabblad Opslag 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 het Azure Portal toont het tabblad Opslag de uitsplitsing van het opslagverbruik op basis van gegevens en 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);

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 statistieken over de uitvoering van query's.

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 biedt details over hoe lang elk onderdeel van de query duurde om uit te voeren. De meest voorkomende hoofdoorzaak voor langlopende query's zijn scans, wat betekent dat de query de indexen niet kon 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 gedurende opeenvolgende intervallen van 5 minuten kan worden gedaan. Aanvragen voor besturingsvlak die deze limieten overschrijden, kunnen beperkingen ondervinden. Metagegevensaanvragen kunnen in sommige gevallen doorvoer verbruiken voor een master partition binnen een account dat alle metagegevens van een account bevat. Aanvragen op het besturingsvlak die de doorvoerhoeveelheid overschrijden, ondervinden een snelheidsbeperking (429s).

Als u wilt beginnen, gaat u naar de Azure Portal en gaat u naar het deelvenster Inzichten. Open vanuit dit deelvenster het tabblad Systeem . Op het tabblad Systeem ziet u twee grafieken. Een die alle metagegevensaanvragen voor een account weergeeft. De tweede toont het doorvoerverbruik van metagegevensaanvragen 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, met de grafiek Metagegevensaanvragen 429 gemarkeerd op het tabblad Systeem.

In de bovenstaande grafiek Metagegevensaanvraag per statuscode worden aanvragen samengevoegd met een grotere granulariteit naarmate u het tijdsbereik vergroot. Het grootste tijdsbereik dat u kunt gebruiken voor een tijdsbak van 5 minuten is 4 uur. Als u aanvragen voor metagegevens over een groter tijdsbereik met specifieke granulariteit wilt bewaken, gebruikt u Metrische gegevens van Azure. Maak een nieuwe grafiek en selecteer Metrische gegevens over aanvragen van metagegevens. Selecteer in de rechterbovenhoek 5 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 de tijdgranulariteit van 5 minuten worden gemarkeerd.

Volgende stappen

Lees de volgende artikelen voor meer informatie over het verbeteren van de databaseprestaties: