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
Meld u aan bij de Azure Portal en navigeer naar uw Azure Cosmos DB-account.
U kunt de metrische gegevens van uw account weergeven in het deelvenster Metrische gegevens of het deelvenster Inzichten .
Statistieken: Dit deelvenster bevat numerieke metrische gegevens die regelmatig worden verzameld en beschrijft een bepaald aspect van een systeem op een bepaald moment. U kunt bijvoorbeeld de metrische gegevens over latentie aan de serverzijde, de metrische gegevens over het gebruik van genormaliseerde aanvraageenheden, enzovoort bekijken en bewaken.
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 voor uw account weer.
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.
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
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.
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 .
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.
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.
Volgende stappen
Lees de volgende artikelen voor meer informatie over het verbeteren van de databaseprestaties: