-
-
Save chrismckelt/bb864a44d50c9586097358c4d963f912 to your computer and use it in GitHub Desktop.
| // Consumed RU/s in last 24 hours | |
| // Identify consumed RU/s on Cosmos databases and collections. | |
| // To create an alert for this query, click '+ New alert rule' | |
| //You can compare the RU/s consumption with your provisioned RU/s to determine if you should scale up or down RU/s based on your workload. | |
| AzureDiagnostics | |
| | where Category == "DataPlaneRequests" | |
| //| where collectionName_s == "CollectionToAnalyze" //Replace to target the query to a collection | |
| | summarize ConsumedRUsPerMinute = sum(todouble(requestCharge_s)) by collectionName_s, _ResourceId, bin(TimeGenerated, 1m) | |
| | project TimeGenerated , ConsumedRUsPerMinute , collectionName_s, _ResourceId | |
| | render timechart | |
| // RU charges by | |
| CDBPartitionKeyRUConsumption | |
| | where DatabaseName == "dsp-db" | |
| | summarize sum(RequestCharge) by PartitionKey | |
| | order by sum_RequestCharge desc | |
| // RU charges by | |
| CDBPartitionKeyRUConsumption | |
| | where DatabaseName == "dsp-db" | |
| | summarize sum(RequestCharge) by PartitionKey | |
| | order by sum_RequestCharge desc | |
| // RU per query | |
| CDBQueryRuntimeStatistics | |
| | join kind=inner ( | |
| CDBDataPlaneRequests | |
| | project RequestCharge, ActivityId | |
| ) on $left.ActivityId == $right.ActivityId | |
| | distinct RequestCharge, QueryText | |
| | order by RequestCharge desc | |
| | limit 10 |
CDBPartitionKeyRUConsumption
| where DatabaseName == "dsp-db"
| where isnotempty(PartitionKey)
// Sum total request units consumed by logical partition key for each second
| project OperationName, CollectionName, PartitionKey, RequestCharge
| summarize sum(RequestCharge) by PartitionKey, CollectionName,OperationName
| order by sum_RequestCharge desc
//Determine what requests are returning 429 responses
CDBDataPlaneRequests
| summarize throttledOperations = dcountif(ActivityId, StatusCode == 429), totalOperations = dcount(ActivityId), totalConsumedRUPerMinute = sum(RequestCharge) by DatabaseName, CollectionName, OperationName, bin(TimeGenerated, 1min)
| extend averageRUPerOperation = 1.0 * totalConsumedRUPerMinute / totalOperations
| extend Most429s = 1.0 * throttledOperations / totalOperations
| order by Most429s desc
CDBPartitionKeyRUConsumption
| join kind=innerunique CDBPartitionKeyStatistics on PartitionKey
| project PartitionKey, AccountName, CollectionName, DatabaseName, RegionName, OperationName, TenantId, _SubscriptionId, RequestCharge, TimeGenerated,SizeKb, SourceSystem, _BilledSize
| join kind=innerunique CDBDataPlaneRequests on CollectionName
| project PartitionKey, AccountName, CollectionName, DatabaseName, RegionName, OperationName, TenantId, _SubscriptionId, RequestCharge, TimeGenerated,SizeKb, SourceSystem, _BilledSize, ActivityId
| join kind=innerunique CDBQueryRuntimeStatistics on CollectionName
| project PartitionKey, AccountName, CollectionName, DatabaseName, RegionName, OperationName, TenantId, _SubscriptionId, RequestCharge, TimeGenerated,SizeKb, SourceSystem, _BilledSize, ActivityId, Type
| summarize sum(RequestCharge) by PartitionKey, CollectionName
| order by sum_RequestCharge desc