Monitorování a ladění pomocí přehledů ve službě Azure Cosmos DB

PLATÍ PRO: NoSQL MongoDB Cassandra Gremlin Tabulka

Azure Cosmos DB poskytuje přehled o propustnosti, úložišti, konzistenci, dostupnosti a latenci. Azure Portal nabízí agregované zobrazení těchto metrik. Metriky služby Azure Cosmos DB můžete zobrazit také s využitím rozhraní API služby Azure Monitor. Hodnoty dimenzí pro metriky, jako je název kontejneru, nerozlišují velká a malá písmena. Proto musíte při porovnávání řetězců u těchto hodnot dimenzí použít porovnání bez rozlišování velkých a malých písmen. Informace o tom, jak zobrazit metriky ze služby Azure Monitor, najdete v tématu Monitorování služby Azure Cosmos DB.

Tento článek vás provede běžnými případy použití a zjistí, jak je možné použít přehledy služby Azure Cosmos DB k analýze a ladění těchto problémů. Ve výchozím nastavení se přehledy metrik shromažďují každých pět minut a uchovávají se po dobu sedmi dnů.

Zobrazení přehledů z Azure Portal

  1. Přihlaste se k Azure Portal a přejděte ke svému účtu služby Azure Cosmos DB.

  2. Metriky účtu můžete zobrazit buď v podokně Metriky , nebo v podokně Přehledy .

    • Metriky: Toto podokno poskytuje číselné metriky, které se shromažďují v pravidelných intervalech, a popisuje některé aspekty systému v konkrétní době. Můžete například zobrazit a monitorovat metriku latence na straně serveru, normalizovanou metriku využití jednotek žádostí atd.

    • Postřehy: Toto podokno poskytuje přizpůsobené prostředí pro monitorování služby Azure Cosmos DB. Přehledy používají stejné metriky a protokoly, které se shromažďují ve službě Azure Monitor, a zobrazují agregované zobrazení pro váš účet.

  3. Otevřete podokno Přehledy . Ve výchozím nastavení se v podokně Přehledy zobrazují metriky propustnosti, požadavků, úložiště, dostupnosti, latence, systému a operací správy pro každý kontejner ve vašem účtu. Můžete vybrat časový rozsah, databázi a kontejner , pro které chcete zobrazit přehledy. Karta Přehled zobrazuje využití RU/s, využití dat, využití indexů, omezené požadavky a normalizovanou spotřebu RU/s pro vybranou databázi a kontejner.

    Snímek obrazovky s metrikami výkonu služby Azure Cosmos DB v Azure Portal

  4. V podokně Přehledy jsou k dispozici následující metriky:

    • Propustnost: Tato karta zobrazuje celkový počet spotřebovaných nebo neúspěšných jednotek žádostí (kód odpovědi 429), protože došlo k překročení propustnosti nebo kapacity úložiště zřízené pro kontejner.

    • Požadavky: Tato karta zobrazuje celkový počet žádostí zpracovaných stavový kód, podle typu operace a počet neúspěšných požadavků (kód odpovědi 429). Požadavky selžou, když propustnost nebo kapacita úložiště zřízená pro kontejner překročí.

    • Úložiště. Tato karta zobrazuje velikost dat a využití indexů ve vybraném časovém období.

    • Dostupnost: Tato karta zobrazuje procento úspěšných požadavků v celkovém počtu požadavků za hodinu. Smlouvy SLA služby Azure Cosmos DB definují míru úspěšnosti.

    • Latence. Tato karta zobrazuje latenci čtení a zápisu, kterou azure Cosmos DB pozoruje v oblasti, ve které váš účet funguje. U geograficky replikovaného účtu můžete vizualizovat latenci napříč oblastmi. Latenci na straně serveru můžete také zobrazit podle různých operací. Tato metrika nepředstavuje latenci požadavků od konce do konce.

    • Systém. Tato karta ukazuje, kolik žádostí o metadata primární oddíl obsluhuje. Pomáhá také identifikovat omezené požadavky.

    • Operace správy. Tato karta zobrazuje metriky pro aktivity správy účtů, jako je vytvoření, odstranění účtu, aktualizace klíčů, nastavení sítě a replikace.

Následující části popisují běžné scénáře, ve kterých můžete použít metriky služby Azure Cosmos DB.

Vysvětlení počtu úspěšných požadavků nebo způsobujících chyby

Začněte tím, že přejdete na Azure Portal a přejdete do podokna Přehledy. V tomto podokně otevřete kartu Žádosti . Karta Žádosti zobrazuje graf s celkovým počtem požadavků segmentovaných podle stavového kódu a typu operace. Další informace o stavových kódech HTTP najdete v tématu Stavové kódy HTTP pro službu Azure Cosmos DB.

Nejběžnější stavový kód chyby je 429 (omezování rychlosti nebo omezování). Tato chyba znamená, že požadavky na službu Azure Cosmos DB jsou vyšší než zřízená propustnost. Nejběžnějším řešením tohoto problému je vertikální navýšení kapacity RU pro danou kolekci. Další informace najdete v tématu Úvod do zřízené propustnosti ve službě Azure Cosmos DB.

Snímek obrazovky zobrazující celkový počet požadavků podle stavových kódů, omezených požadavků a celkový počet požadavků podle typu operace

Určení spotřeby propustnosti podle rozsahu klíčů oddílu

Dobrá kardinalita klíčů oddílů je nezbytná pro každou škálovatelnou aplikaci. Pokud chcete zjistit distribuci propustnosti libovolného rozděleného kontejneru rozděleného podle ID rozsahu klíčů oddílu, přejděte do podokna Přehledy . Otevřete kartu Propustnost . V grafu je znázorněna normalizovaná spotřeba RU/s napříč různými rozsahy klíčů oddílu.

Snímek obrazovky s kartou Propustnost zobrazující spotřebu RU/s

Pomocí tohoto grafu můžete zjistit, jestli existuje horký oddíl. Nerovnoměrná distribuce propustnosti může způsobit horké oddíly, což může vést k omezování požadavků a může vyžadovat opětovné dělení. Po zjištění klíče oddílu, který způsobuje nerovnoměrnou distribuci, možná budete muset kontejner znovu rozdělit na více distribuovaný klíč oddílu. Další informace o dělení ve službě Azure Cosmos DB najdete v tématu Dělení a horizontální škálování ve službě Azure Cosmos DB.

Určení využití dat a indexů

Je důležité určit distribuci úložiště libovolného děleného kontejneru podle využití dat, využití indexů a dokumentů. Můžete minimalizovat využití indexů, maximalizovat využití dat a optimalizovat dotazy. Pokud chcete tato data získat, přejděte do podokna Přehledy a otevřete kartu Úložiště .

Snímek obrazovky s podoknem Přehledy se zvýrazněnou kartou Úložiště

Porovnání velikosti dat s velikostí indexu

Ve službě Azure Cosmos DB je celkové spotřebované úložiště kombinací velikosti dat a velikosti indexu. Velikost indexu je obvykle zlomkem velikosti dat. Další informace najdete v článku Velikost indexu . V podokně Metriky v Azure Portal se na kartě Úložiště zobrazí rozpis spotřeby úložiště na základě dat a indexu.

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

Pokud chcete šetřit místo v indexu, můžete upravit zásady indexování.

Ladění pomalých dotazů

V sadách API for NoSQL SDK poskytuje Azure Cosmos DB statistiku provádění dotazů.

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 poskytuje podrobnosti o tom, jak dlouho trvalo provedení jednotlivých komponent dotazu. Nejčastější hlavní příčinou dlouhotrvajících dotazů jsou kontroly, což znamená, že dotaz nemohl použít indexy. Tento problém lze vyřešit lepším stavem filtru.

Monitorování požadavků řídicí roviny

Azure Cosmos DB uplatňuje omezení počtu požadavků na metadata, které je možné provádět v po sobě jdoucích 5minutových intervalech. U požadavků řídicí roviny, které tyto limity překročí, může dojít k omezování. Požadavky na metadata můžou v některých případech využívat propustnost vůči master partition účtu, který obsahuje všechna metadata účtu. U požadavků řídicí roviny, které přesáhly množství propustnosti, dochází k omezování rychlosti (429s).

Začněte tím, že přejdete na Azure Portal a přejdete do podokna Přehledy. V tomto podokně otevřete kartu Systém . Na kartě Systém se zobrazují dva grafy. Takový, který zobrazuje všechny žádosti o metadata pro účet. Druhý ukazuje využití propustnosti požadavků na metadata z účtů master partition , které ukládají metadata účtu.

Snímek obrazovky s podoknem Přehledy se zvýrazněním grafu žádostí o metadata na kartě Systém

Snímek obrazovky s podoknem Přehledy se zvýrazněním grafu 429 žádostí o metadata na kartě Systém

Výše uvedený graf Žádosti o metadata podle stavového kódu agreguje požadavky se zvyšující se větší členitostí při zvyšování časového rozsahu. Největší časový rozsah, který můžete použít v intervalu 5 minut, je 4 hodiny. Pokud chcete monitorovat požadavky na metadata ve větším časovém rozsahu se specifickou členitostí, použijte metriky Azure. Vytvořte nový graf a vyberte metriku Žádosti o metadata. V pravém horním rohu vyberte 5 minut jako Časová členitost, jak je vidět níže. Metriky také umožňují uživatelům vytvářet upozornění , což je činí užitečnějšími než Přehledy.

Snímek obrazovky s podoknem Metriky se zvýrazněním požadavků na metadata pro účet a časové intervaly 5 minut

Další kroky

Další informace o zlepšení výkonu databáze najdete v následujících článcích: