Megosztás a következőn keresztül:


Diagnosztikai lekérdezésekkel kapcsolatos problémák elhárítása

A KÖVETKEZŐKRE VONATKOZIK: NoSQL MongoDB Cassandra Gremlin Asztal

Ebben a cikkben bemutatjuk, hogyan írhat egyszerű lekérdezéseket az Azure Cosmos DB-fiók problémáinak elhárításához az AzureDiagnostics (örökölt) és erőforrás-specifikus (előzetes verzió) táblákba küldött diagnosztikai naplók használatával.

Az Azure Diagnostics-táblák esetében minden adat egyetlen táblába van írva, és a felhasználóknak meg kell adniuk, hogy melyik kategóriát szeretnék lekérdezni.

Erőforrás-specifikus táblák esetében az adatok az erőforrás egyes kategóriáinak egyes tábláiba lesznek beírva (a table API-hoz nem érhetők el). Ezt a módot javasoljuk, mivel sokkal egyszerűbbé teszi az adatok kezelését, jobb felderíthetőséget biztosít a sémákhoz, és javítja a teljesítményt mind a betöltési késés, mind a lekérdezési idő tekintetében.

Gyakori lekérdezések

Íme a gyakori hibaelhárítási lekérdezések listája.

3 ezredmásodpercnél hosszabb ideig futó műveletek lekérdezése

Keresse meg a 3 ezredmásodpercnél hosszabb időtartamú műveleteket.

AzureDiagnostics 
| where toint(duration_s) > 3 and ResourceProvider=="MICROSOFT.DOCUMENTDB" and Category=="DataPlaneRequests" 
| summarize count() by clientIpAddress_s, TimeGenerated

Műveleteket futtató felhasználói ügynökök lekérdezése

Keresse meg az egyes műveletekhez társított felhasználói ügynököket.

AzureDiagnostics 
| where ResourceProvider=="MICROSOFT.DOCUMENTDB" and Category=="DataPlaneRequests" 
| summarize count() by OperationName, userAgent_s

Hosszú ideig futó műveletek lekérdezése

A hosszú ideig futó műveleteket úgy keresheti meg, hogy a futtatókörnyezetet öt másodperces időközökbe rendezi.

AzureDiagnostics 
| where ResourceProvider=="MICROSOFT.DOCUMENTDB" and Category=="DataPlaneRequests" 
| project TimeGenerated , duration_s 
| summarize count() by bin(TimeGenerated, 5s)
| render timechart

Partíciókulcs-statisztikák lekérése az adatbázisfiók első három partíciójának eltérésének kiértékeléséhez

A fizikai partíciók általános statisztikáinak lekérésével mérje a ferdeség mértékét.

AzureDiagnostics 
| where ResourceProvider=="MICROSOFT.DOCUMENTDB" and Category=="PartitionKeyStatistics" 
| project SubscriptionId, regionName_s, databaseName_s, collectionName_s, partitionKey_s, sizeKb_d, ResourceId 

Drága lekérdezések kérési díjainak lekérése

A legnagyobb lekérdezések kérelemdíjának mérése (kérelemegységekben).

AzureDiagnostics
| where ResourceProvider=="MICROSOFT.DOCUMENTDB" and Category=="DataPlaneRequests" and todouble(requestCharge_s) > 10.0
| project activityId_g, requestCharge_s
| join kind= inner (
AzureDiagnostics
| where ResourceProvider =="MICROSOFT.DOCUMENTDB" and Category == "QueryRuntimeStatistics"
| project activityId_g, querytext_s
) on $left.activityId_g == $right.activityId_g
| order by requestCharge_s desc
| limit 100

Annak megkeresése, hogy mely műveletek veszik igénybe a legtöbb RU/s-t

A műveletek rendezése az általuk használt RU/s mennyiség alapján.

AzureDiagnostics
| where ResourceProvider=="MICROSOFT.DOCUMENTDB" and Category=="DataPlaneRequests"
| where TimeGenerated >= ago(2h) 
| summarize max(responseLength_s), max(requestLength_s), max(requestCharge_s), count = count() by OperationName, requestResourceType_s, userAgent_s, collectionRid_s, bin(TimeGenerated, 1h)

A 100 RU/s-nál több lekérdezést használó összes lekérdezés lekérése

Olyan lekérdezések keresése, amelyek az alapértéknél több RU/s-t használnak fel.

Ez a lekérdezés a forrásból DataPlaneRequests és QueryRunTimeStatisticsa .

AzureDiagnostics
| where ResourceProvider=="MICROSOFT.DOCUMENTDB" and Category=="DataPlaneRequests" and todouble(requestCharge_s) > 100.0
| project activityId_g, requestCharge_s
| join kind= inner (
        AzureDiagnostics
        | where ResourceProvider =="MICROSOFT.DOCUMENTDB" and Category == "QueryRuntimeStatistics"
        | project activityId_g, querytext_s
) on $left.activityId_g == $right.activityId_g
| order by requestCharge_s desc
| limit 100

A kérelem díjának és a lekérdezés végrehajtási időtartamának lekérése

Egy adott lekérdezés statisztikáinak lekérése a kérelem díjában és időtartamában is.

AzureDiagnostics
| where TimeGenerated >= ago(24hr)
| where Category == "QueryRuntimeStatistics"
| join (
AzureDiagnostics
| where TimeGenerated >= ago(24hr)
| where Category == "DataPlaneRequests"
) on $left.activityId_g == $right.activityId_g
| project databasename_s, collectionname_s, OperationName1 , querytext_s,requestCharge_s1, duration_s1, bin(TimeGenerated, 1min)

A különböző műveletek eloszlásának lekérése

Csoportosítsa a műveleteket az erőforrás-eloszlás szerint.

AzureDiagnostics
| where ResourceProvider=="MICROSOFT.DOCUMENTDB" and Category=="DataPlaneRequests"
| where TimeGenerated >= ago(2h) 
| summarize count = count()  by OperationName, requestResourceType_s, bin(TimeGenerated, 1h) 

A partíció által felhasznált maximális átviteli sebesség lekérése

A fizikai partíció maximális átviteli sebességének lekérése.

AzureDiagnostics
| where ResourceProvider=="MICROSOFT.DOCUMENTDB" and Category=="DataPlaneRequests"
| where TimeGenerated >= ago(2h) 
| summarize max(requestCharge_s) by bin(TimeGenerated, 1h), partitionId_g

Információ lekérése a partíciókulcsok RU/s másodpercenkénti fogyasztásáról

Ru/s-felhasználás mérése másodpercenként partíciókulcsonként.

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.DOCUMENTDB" and Category == "PartitionKeyRUConsumption" 
| summarize total = sum(todouble(requestCharge_s)) by databaseName_s, collectionName_s, partitionKey_s, TimeGenerated 
| order by TimeGenerated asc 

Adott partíciókulcs kérési díjának lekérése

A kérelem díjának mérése partíciókulcsonként.

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.DOCUMENTDB" and Category == "PartitionKeyRUConsumption" 
| where parse_json(partitionKey_s)[0] == "2" 

A legfelső partíciókulcsok lekérése egy adott időszakban felhasznált legtöbb RU/s használatával

Partíciókulcsok rendezése a kérelemegység-használat alapján egy időablakon belül.

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.DOCUMENTDB" and Category == "PartitionKeyRUConsumption" 
| where TimeGenerated >= datetime("11/26/2019, 11:20:00.000 PM") and TimeGenerated <= datetime("11/26/2019, 11:30:00.000 PM") 
| summarize total = sum(todouble(requestCharge_s)) by databaseName_s, collectionName_s, partitionKey_s 
| order by total desc

Naplók lekérése a 8 GB-nál nagyobb tárterületű partíciókulcsokhoz

A partíciókulcsok naplóinak megkeresése a partíciókulcsonkénti tárterület mérete alapján szűrve.

AzureDiagnostics
| where ResourceProvider=="MICROSOFT.DOCUMENTDB" and Category=="PartitionKeyStatistics"
| where todouble(sizeKb_d) > 800000

P99- vagy P50-késések lekérése a műveletekért, a kérelem díjáért vagy a válasz hosszáért

Teljesítmény mérése; művelet késése, RU/s-használat és válaszhossz.

AzureDiagnostics
| where ResourceProvider=="MICROSOFT.DOCUMENTDB" and Category=="DataPlaneRequests"
| where TimeGenerated >= ago(2d)
| summarize percentile(todouble(responseLength_s), 50), percentile(todouble(responseLength_s), 99), max(responseLength_s), percentile(todouble(requestCharge_s), 50), percentile(todouble(requestCharge_s), 99), max(requestCharge_s), percentile(todouble(duration_s), 50), percentile(todouble(duration_s), 99), max(duration_s), count() by OperationName, requestResourceType_s, userAgent_s, collectionRid_s, bin(TimeGenerated, 1h)

Vezérlősík naplóinak lekérése

A vezérlősík hosszú lekérése a következő használatával ControlPlaneRequests: .

Tipp.

Ne felejtse el bekapcsolni a kulcsalapú metaadatok írási hozzáférésének letiltása című szakaszban leírt jelzőt, és hajtsa végre a műveleteket az Azure PowerShell, az Azure CLI vagy az Azure Resource Manager használatával.

AzureDiagnostics 
| where Category =="ControlPlaneRequests"
| summarize by OperationName 

Következő lépések

  • Az Azure Cosmos DB diagnosztikai beállításainak létrehozásáról további információt a Diagnosztikai beállítások létrehozása című témakörben talál.
  • A diagnosztikai beállítások Azure Portallal, parancssori felülettel vagy PowerShell használatával történő létrehozásával kapcsolatos részletes információkért tekintse meg a platformnaplók és metrikák Azure-beli gyűjtésére szolgáló diagnosztikai beállítás létrehozását.