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řehledy 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í malá a velká písmena. Proto při porovnávání řetězců u těchto hodnot dimenzí musíte 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é tyto problémy analyzovat a ladit pomocí přehledů služby Azure Cosmos DB. 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 svého účtu můžete zobrazit buď v podokně Metriky , nebo v podokně Přehledy .

    • Metriky: Toto podokno obsahuje číselné metriky, které se shromažďují v pravidelných intervalech, a popisuje určité aspekty systému v určitém čase. 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í podokno Přehledy zobrazuje 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 jednotek žádostí spotřebovaných nebo neúspěšných (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 podle stavového kódu, podle typu operace a počtu 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ů za vybrané časové období.

    • Dostupnost: Tato karta zobrazuje procento úspěšných požadavků oproti celkovému 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 zobrazit také podle různých operací. Tato metrika nepředstavuje koncovou latenci požadavku.

    • Systém. Tato karta ukazuje, kolik požadavků na 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.

Zjistěte, kolik požadavků je úspěšných nebo způsobuje 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ého počtu 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 děleného kontejneru rozděleného podle ID rozsahů klíčů oddílů, přejděte do podokna Přehledy . Otevřete kartu Propustnost . V grafu je znázorněná normalizovaná spotřeba RU/s napříč různými rozsahy klíčů oddílů.

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í. Jakmile zjistíte, který klíč oddílu způsobuje nerovnoměrnou distribuci, možná budete muset kontejner znovu rozdělit na 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 rozděleného kontejneru podle využití dat, indexu a využití 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é využité úložiště kombinací velikosti dat a velikosti indexu. Velikost indexu obvykle představuje zlomek 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ě podle 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 rozhraní API pro sady Sdk NoSQL poskytuje Azure Cosmos DB statistiky spouště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ší podmínkou 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 docházet 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áhnou propustnost, dochází k omezování rychlosti (429).

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 . Karta Systém zobrazuje dva grafy. Takový, který zobrazuje všechny požadavky na metadata pro účet. Druhý ukazuje využití propustnosti požadavků na metadata z účtů master partition , které ukládají metadata účtu.

Snímek obrazovky podokna Přehledy se zvýrazněním grafu požadavků na metadata na kartě Systém

Snímek obrazovky podokna Přehledy se zvýrazněním grafu 429 požadavků na metadata na kartě Systém

Výše uvedený graf Požadavek na metadata podle stavového kódu agreguje požadavky s rostoucí členitostí při zvětšování časového rozsahu. Největší časový rozsah, který můžete použít pro 5minutový časový interval, je 4 hodiny. Pokud chcete monitorovat požadavky na metadata ve větším časovém rozsahu s konkrétní č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é intervaly, jak vidíte níže. Metriky také umožňují uživatelům vytvářet na ně upozornění , takže jsou užitečnější než Přehledy.

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

Další kroky

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