Monitorowanie i debugowanie za pomocą szczegółowych informacji w usłudze Azure Cosmos DB

DOTYCZY: Nosql Mongodb Cassandra Gremlin Tabeli

Usługa Azure Cosmos DB zapewnia szczegółowe informacje dotyczące przepływności, magazynu, spójności, dostępności i opóźnień. Witryna Azure Portal oferuje zagregowany widok tych metryk. Możesz również wyświetlić metryki usługi Azure Cosmos DB z poziomu interfejsu API usługi Azure Monitor. Wartości wymiarów metryk, takich jak nazwa kontenera, są bez uwzględniania wielkości liter. W związku z tym należy użyć porównania bez uwzględniania wielkości liter podczas porównywania ciągów dla tych wartości wymiarów. Aby dowiedzieć się, jak wyświetlać metryki z usługi Azure Monitor, zobacz Monitorowanie usługi Azure Cosmos DB.

W tym artykule przedstawiono typowe przypadki użycia i sposób użycia szczegółowych informacji usługi Azure Cosmos DB do analizowania i debugowania tych problemów. Domyślnie szczegółowe informacje o metryce są zbierane co pięć minut i są przechowywane przez siedem dni.

Wyświetlanie szczegółowych informacji z Azure Portal

  1. Zaloguj się do Azure Portal i przejdź do konta usługi Azure Cosmos DB.

  2. Metryki konta można wyświetlić w okienku Metryki lub w okienku Szczegółowe informacje .

    • Metryki: To okienko zawiera metryki liczbowe, które są zbierane w regularnych odstępach czasu i opisują pewien aspekt systemu w określonym czasie. Można na przykład wyświetlać i monitorować metryki opóźnienia po stronie serwera, metryki znormalizowanych jednostek żądania itp.

    • Spostrzeżenia: To okienko zapewnia dostosowane środowisko monitorowania dla usługi Azure Cosmos DB. Szczegółowe informacje używają tych samych metryk i dzienników, które są zbierane w usłudze Azure Monitor i pokazują zagregowany widok dla twojego konta.

  3. Otwórz okienko Szczegółowe informacje . Domyślnie w okienku Szczegółowe informacje są wyświetlane metryki przepływności, żądań, magazynu, dostępności, opóźnienia, systemu i operacji zarządzania dla każdego kontenera na koncie. Możesz wybrać zakres czasu, bazę danych i kontener , dla którego chcesz wyświetlić szczegółowe informacje. Na karcie Przegląd przedstawiono użycie jednostek RU/s, użycie danych, użycie indeksu, żądania ograniczone i znormalizowane użycie jednostek RU/s dla wybranej bazy danych i kontenera.

    Zrzut ekranu przedstawiający metryki wydajności usługi Azure Cosmos DB w Azure Portal.

  4. W okienku Szczegółowych informacji są dostępne następujące metryki:

    • Przepływność. Na tej karcie jest wyświetlana łączna liczba jednostek żądania użytych lub zakończonych niepowodzeniem (kod odpowiedzi 429), ponieważ przepływność lub pojemność magazynu aprowizowana dla kontenera przekroczyła.

    • Żądania. Na tej karcie przedstawiono łączną liczbę żądań przetworzonych przez kod stanu, według typu operacji i liczbę żądań zakończonych niepowodzeniem (kod odpowiedzi 429). Żądania kończą się niepowodzeniem, gdy przepływność lub pojemność magazynu aprowizowana dla kontenera przekroczy.

    • Magazyn. Na tej karcie przedstawiono rozmiar danych i użycia indeksu w wybranym okresie.

    • Dostępność. Na tej karcie przedstawiono procent pomyślnych żądań na łączną liczbę żądań na godzinę. Umowy SLA usługi Azure Cosmos DB definiują współczynnik powodzenia.

    • Opóźnienie. Na tej karcie przedstawiono opóźnienie odczytu i zapisu obserwowane przez usługę Azure Cosmos DB w regionie, w którym działa Twoje konto. Opóźnienie można wizualizować w różnych regionach dla konta z replikacją geograficzną. Możesz również wyświetlić opóźnienie po stronie serwera według różnych operacji. Ta metryka nie reprezentuje opóźnienia żądania kompleksowego.

    • System. Na tej karcie przedstawiono liczbę żądań metadanych, które obsługuje partycja podstawowa. Pomaga również zidentyfikować ograniczone żądania.

    • Operacje zarządzania. Na tej karcie przedstawiono metryki dla działań związanych z zarządzaniem kontami, takich jak tworzenie konta, usuwanie, aktualizacje kluczy, ustawienia sieci i replikacji.

W poniższych sekcjach opisano typowe scenariusze, w których można używać metryk usługi Azure Cosmos DB.

Informacje o liczbie żądań pomyślnych lub powodujących błędy

Aby rozpocząć, przejdź do Azure Portal i przejdź do okienka Szczegółowe informacje. W tym okienku otwórz kartę Żądania . Na karcie Żądania jest wyświetlany wykres z łączną liczbie żądań posegmentowanych według kodu stanu i typu operacji. Aby uzyskać więcej informacji na temat kodów stanu HTTP, zobacz Kody stanu HTTP dla usługi Azure Cosmos DB.

Najczęstszym kodem stanu błędu jest 429 (ograniczanie szybkości/ograniczanie przepustowości). Ten błąd oznacza, że żądania do usługi Azure Cosmos DB są większe niż aprowizowana przepływność. Najczęstszym rozwiązaniem tego problemu jest skalowanie jednostek RU w górę dla danej kolekcji. Aby uzyskać więcej informacji, zobacz Wprowadzenie do aprowizowanej przepływności w usłudze Azure Cosmos DB

Zrzut ekranu przedstawiający łączną liczbę żądań według kodu stanu, ograniczonych żądań i łączną liczbę żądań według typu operacji.

Określanie użycia przepływności według zakresu kluczy partycji

Posiadanie dobrej kardynalności kluczy partycji jest niezbędne dla każdej skalowalnej aplikacji. Aby określić rozkład przepływności dowolnego partycjonowanego kontenera podzielonego na identyfikatory zakresów kluczy partycji, przejdź do okienka Szczegółowe informacje . Otwórz kartę Przepływność . Na wykresie przedstawiono znormalizowane użycie jednostek RU/s w różnych zakresach kluczy partycji.

Zrzut ekranu przedstawiający kartę Przepływność przedstawiającą użycie jednostek RU/s.

Za pomocą tego wykresu możesz określić, czy istnieje gorąca partycja. Nierównomierna dystrybucja przepływności może powodować gorące partycje, co może spowodować ograniczenie żądań i może wymagać ponownego partycjonowania. Po zidentyfikowaniu, który klucz partycji powoduje niesymetryczność w dystrybucji, może być konieczne ponowne partycjonowanie kontenera przy użyciu bardziej rozproszonego klucza partycji. Aby uzyskać więcej informacji na temat partycjonowania w usłudze Azure Cosmos DB, zobacz Partycjonowanie i skalowanie w poziomie w usłudze Azure Cosmos DB.

Określanie użycia danych i indeksów

Ważne jest, aby określić rozkład magazynu dowolnego partycjonowanego kontenera według użycia danych, użycia indeksu i użycia dokumentu. Możesz zminimalizować użycie indeksu, zmaksymalizować użycie danych i zoptymalizować zapytania. Aby uzyskać te dane, przejdź do okienka Szczegółowe informacje i otwórz kartę Magazyn .

Zrzut ekranu przedstawiający okienko Szczegółowe informacje z wyróżnioną kartą Magazyn.

Porównywanie rozmiaru danych z rozmiarem indeksu

W usłudze Azure Cosmos DB łączna ilość zużytego magazynu jest kombinacją zarówno rozmiaru danych, jak i rozmiaru indeksu. Zazwyczaj rozmiar indeksu jest ułamkiem rozmiaru danych. Aby dowiedzieć się więcej, zobacz artykuł Rozmiar indeksu . W okienku Metryki w Azure Portal karta Magazyn przedstawia podział użycia magazynu na podstawie danych i indeksu.

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

Jeśli chcesz zaoszczędzić miejsce na indeksie, możesz dostosować zasady indeksowania.

Debugowanie wolnych zapytań

W zestawach SDK interfejsu API dla noSQL usługa Azure Cosmos DB udostępnia statystyki wykonywania zapytań.

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;

Funkcja QueryMetrics zawiera szczegółowe informacje na temat czasu wykonywania każdego składnika zapytania. Najczęstszą główną przyczyną długotrwałych zapytań jest skanowanie, co oznacza, że zapytanie nie mogło zastosować indeksów. Ten problem można rozwiązać przy użyciu lepszego warunku filtru.

Monitorowanie żądań płaszczyzny sterowania

Usługa Azure Cosmos DB stosuje limity liczby żądań metadanych, które mogą być wykonywane w kolejnych 5-minutowych odstępach czasu. Żądania płaszczyzny sterowania, które przekroczają te limity, mogą wystąpić ograniczanie przepustowości. Żądania metadanych mogą w niektórych przypadkach korzystać z przepływności względem master partition konta zawierającego wszystkie metadane konta. Żądania płaszczyzny sterowania, które przechodzą przez przepływność, będą doświadczać ograniczania szybkości (429s).

Aby rozpocząć, przejdź do Azure Portal i przejdź do okienka Szczegółowe informacje. W tym okienku otwórz kartę System . Karta System zawiera dwa wykresy. Taki, który pokazuje wszystkie żądania metadanych dla konta. Drugi pokazuje, że metadane żądają użycia przepływności z konta master partition , które przechowuje metadane konta.

Zrzut ekranu przedstawiający okienko Szczegółowe informacje z wyróżnionym wykresem żądań metadanych na karcie System.

Zrzut ekranu przedstawiający okienko Szczegółowe informacje z wyróżnionym grafem żądania metadanych 429 na karcie System.

Wykres Żądania metadanych według kodu stanu powyżej agreguje żądania z większym stopniem szczegółowości w miarę zwiększania zakresu czasu. Największy zakres czasu, którego można użyć przez 5-minutowy przedział czasu, wynosi 4 godziny. Aby monitorować żądania metadanych w większym zakresie czasu o określonym stopniu szczegółowości, użyj usługi Azure Metrics. Utwórz nowy wykres i wybierz metrykę Żądania metadanych. W prawym górnym rogu wybierz pozycję 5 minut dla stopnia szczegółowości czasu, jak pokazano poniżej. Metryki umożliwiają również użytkownikom tworzenie alertów , co sprawia, że są one bardziej przydatne niż szczegółowe informacje.

Zrzut ekranu przedstawiający okienko Metryki z wyróżnionymi żądaniami metadanych dla konta i stopnia szczegółowości czasu 5 minut.

Następne kroki

Możesz dowiedzieć się więcej na temat poprawy wydajności bazy danych, czytając następujące artykuły: