你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure Monitor 监视 Azure Cosmos DB for MongoDB vCore 诊断日志

适用对象: MongoDB vCore

Azure 的诊断日志对于捕获 Azure Cosmos DB for MongoDB vCore 帐户的 Azure 资源日志至关重要。 这些日志会频繁且详细提供对该帐户的资源操作的洞察。

重要

此功能不适用于 M25(可突发)或 M30(免费层)SKU。

先决条件

创建诊断设置

会自动收集平台指标和活动日志。 若要收集资源日志并从 Azure Monitor 外部路由这些日志,必须建立诊断设置。 若要了解操作方法,请参阅在 Azure Monitor 中创建诊断设置

管理诊断设置

有时你需要通过查找或删除设置来管理设置。 az monitor diagnostic-settings 命令组包括用于管理诊断设置的子命令。

  1. 列出与用于 MongoDB vCore 群集的 API 关联的所有诊断设置。

    az monitor diagnostic-settings list \
        --resource-group $resourceGroupName \
        --resource $clusterResourceId
    
  2. 使用某一设置的关联资源和名称来删除该特定设置。

    az monitor diagnostic-settings delete \
        --resource-group $resourceGroupName \
        --name $diagnosticSettingName \
        --resource $clusterResourceId
    

使用高级诊断查询

使用这些特定于资源的查询在 API for MongoDB vCore 群集中执行常见的故障排除研究。

重要

本节假定你使用的是具有特定于资源的日志的 Log Analytics 工作区。

  1. 导航到 API for MongoDB vCore 群集的“日志”部分。 观察示例查询的列表。

    示例查询的诊断查询列表的屏幕截图。

  2. 运行此查询以统计失败的 MongoDB vCore API 请求数(按错误代码分组)

    VCoreMongoRequests
    // Time range filter:  | where TimeGenerated between (StartTime .. EndTime)
    // Resource id filter: | where _ResourceId == "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group-name/providers/microsoft.documentdb/mongoclusters/my-cluster-name"
    | where ErrorCode != 0
    | summarize count() by bin(TimeGenerated, 5m), ErrorCode=tostring(ErrorCode)
    
  3. 运行此查询,按操作名称 获取用于 MongoDB vCore 的 API 请求P99运行时持续时间。

    // Mongo vCore requests P99 duration by operation 
    // Mongo vCore requests P99 runtime duration by operation name. 
    VCoreMongoRequests
    // Time range filter:  | where TimeGenerated between (StartTime .. EndTime)
    // Resource id filter: | where _ResourceId == "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group-name/providers/microsoft.documentdb/mongoclusters/my-cluster-name"
    | summarize percentile(DurationMs, 99) by bin(TimeGenerated, 1h), OperationName
    
  4. 运行此查询以获取按总运行时持续时间分组的 MongoDB vCore 请求的 API 计数

    // Mongo vCore requests binned by duration 
    // Count of Mongo vCore requests binned by total runtime duration. 
    VCoreMongoRequests
    // Time range filter:  | where TimeGenerated between (StartTime .. EndTime)
    // Resource id filter: | where _ResourceId == "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group-name/providers/microsoft.documentdb/mongoclusters/my-cluster-name"
    | project TimeGenerated, DurationBin=tostring(bin(DurationMs, 5))
    | summarize count() by bin(TimeGenerated, 1m), tostring(DurationBin)
    
  5. 运行此查询以按照用户获取 API for MongoDB vCore 请求的数量

    // Mongo vCore requests by user agent 
    // Count of Mongo vCore requests by user agent. 
    VCoreMongoRequests
    // Time range filter:  | where TimeGenerated between (StartTime .. EndTime)
    // Resource id filter: | where _ResourceId == "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group-name/providers/microsoft.documentdb/mongoclusters/my-cluster-name"
    | summarize count() by bin(TimeGenerated, 1h), UserAgent