Rozwiązywanie problemów z zaawansowanymi zapytaniami diagnostycznymi w usłudze Azure Cosmos DB dla bazy danych MongoDB
DOTYCZY: NoSQL MongoDB Kasandra Gremlin
W tym artykule omówimy sposób pisania bardziej zaawansowanych zapytań, aby ułatwić rozwiązywanie problemów z kontem usługi Azure Cosmos DB przy użyciu dzienników diagnostycznych wysyłanych do tabel Diagnostyka Azure (starsza wersja) i specyficznych dla zasobów (wersja zapoznawcza).
W przypadku tabel Diagnostyka Azure wszystkie dane są zapisywane w jednej tabeli. Użytkownicy określają kategorię, którą mają wykonywać zapytania. Jeśli chcesz wyświetlić zapytanie pełnotekstowe żądania, zobacz Monitorowanie danych usługi Azure Cosmos DB przy użyciu ustawień diagnostycznych na platformie Azure , aby dowiedzieć się, jak włączyć tę funkcję.
W przypadku tabel specyficznych dla zasobów dane są zapisywane w poszczególnych tabelach dla każdej kategorii zasobu. Zalecamy ten tryb, ponieważ:
- Ułatwia pracę z danymi.
- Zapewnia lepszą możliwość odnajdywania schematów.
- Zwiększa wydajność zarówno opóźnienia pozyskiwania, jak i czasu wykonywania zapytań.
Typowe zapytania
Typowe zapytania są wyświetlane w tabelach specyficznych dla zasobów i Diagnostyka Azure.
N(10) Jednostka żądań (RU) zużywających żądania lub zapytania w określonym przedziale czasu
//Enable full-text query to view entire query text
CDBMongoRequests
| where TimeGenerated > ago(24h)
| project PIICommandText, ActivityId, DatabaseName , CollectionName, RequestCharge
| order by RequestCharge desc
| take 10
Żądania ograniczone (statusCode = 429 lub 16500) w określonym przedziale czasu
CDBMongoRequests
| where TimeGenerated > ago(24h)
| where ErrorCode == "429" or ErrorCode == "16500"
| project DatabaseName, CollectionName, PIICommandText, OperationName, TimeGenerated
Limit czasu żądań (statusCode = 50) w określonym przedziale czasu
CDBMongoRequests
| where TimeGenerated > ago(24h)
| where ErrorCode == "50"
| project DatabaseName, CollectionName, PIICommandText, OperationName, TimeGenerated
Zapytania o dużej długości odpowiedzi (rozmiar ładunku odpowiedzi serwera)
CDBMongoRequests
//specify collection and database
//| where DatabaseName == "DB NAME" and CollectionName == "COLLECTIONNAME"
| summarize max(ResponseLength) by PIICommandText, RequestCharge, DurationMs, OperationName, TimeGenerated
| order by max_ResponseLength desc
Użycie jednostek RU przez partycję fizyczną (we wszystkich replikach w zestawie replik)
CDBPartitionKeyRUConsumption
| where TimeGenerated >= now(-1d)
//specify collection and database
//| where DatabaseName == "DB NAME" and CollectionName == "COLLECTIONNAME"
// filter by operation type
//| where operationType_s == 'Create'
| summarize sum(todouble(RequestCharge)) by toint(PartitionKeyRangeId)
| render columnchart
Użycie jednostek RU przez partycję logiczną (we wszystkich replikach w zestawie replik)
CDBPartitionKeyRUConsumption
| where TimeGenerated >= now(-1d)
//specify collection and database
//| where DatabaseName == "DB NAME" and CollectionName == "COLLECTIONNAME"
// filter by operation type
//| where operationType_s == 'Create'
| summarize sum(todouble(RequestCharge)) by PartitionKey, PartitionKeyRangeId
| render columnchart
Następne kroki
- Aby uzyskać więcej informacji na temat tworzenia ustawień diagnostycznych dla usługi Azure Cosmos DB, zobacz Tworzenie ustawień diagnostycznych.
- Aby uzyskać szczegółowe informacje na temat tworzenia ustawienia diagnostycznego przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub programu PowerShell, zobacz Tworzenie ustawień diagnostycznych w celu zbierania dzienników platformy i metryk na platformie Azure.