如何跟踪采用手动吞吐量模式的Azure Cosmos DB吞吐量变更?
跟踪Azure Cosmos DB手动吞吐量模式的吞吐量变更方法
方法1:借助Azure Monitor日志监控
- 先开启Cosmos DB的诊断日志,勾选
DataPlaneRequests和ControlPlaneRequests两类日志——控制平面日志会完整记录吞吐量变更操作(比如调整RU/s的请求) - 用Kusto查询筛选目标日志,示例语句:
AzureDiagnostics | where ResourceType == "COSMOSDBACCOUNTS" | where OperationName in ("Update Sql Container Throughput", "Update Sql Database Throughput") | project TimeGenerated, Resource, OperationName, Properties, ResultType
- 可设置告警规则,一旦检测到吞吐量变更操作就触发通知
方法2:用Azure Resource Graph查询变更历史
- 通过Resource Graph检索Cosmos DB资源的吞吐量变更记录,示例查询:
resources | where type in ("microsoft.documentdb/databaseaccounts/sqlDatabases", "microsoft.documentdb/databaseaccounts/sqlDatabases/containers") | project name, location, properties.resource.throughput, changeHistory
- 注意要提前启用资源的变更历史功能,可通过Azure门户或CLI配置
方法3:脚本定期检查对比
- 编写Azure CLI或PowerShell脚本,定期拉取当前吞吐量值并与历史记录对比,示例PowerShell片段:
$cosmosAccount = "你的账号名" $resourceGroup = "你的资源组名" $databaseName = "你的数据库名" $currentThroughput = Get-AzCosmosDBSqlDatabaseThroughput -AccountName $cosmosAccount -ResourceGroupName $resourceGroup -Name $databaseName # 将$currentThroughput的值和本地存储的历史值比对,有差异就记录变更
- 可把脚本部署为Azure自动化Runbook,定时执行并留存变更日志
方法4:通过Event Grid接收实时变更事件
- 给Cosmos DB资源订阅Azure Event Grid的资源变更事件,当吞吐量调整时,Event Grid会推送事件通知
- 把事件路由到Azure Functions、Logic Apps等服务,实现实时的变更记录和告警
内容的提问来源于stack exchange,提问作者sksan
相关产品推荐
相关产品推荐

