使用 Azure 監視器監視 Azure Cosmos DB for MongoDB 虛擬核心診斷記錄
適用於: MongoDB 虛擬核心
Azure 的診斷記錄對於擷取 Azure Cosmos DB for MongoDB 虛擬核心帳戶的 Azure 資源記錄而言至關重要。 這些記錄會針對該帳戶的資源作業提供詳細且頻繁的深入解析。
重要
此功能不適用於 M25
(可高載) 或 M30
(免費層) SKU。
必要條件
- 現有的 Azure Cosmos DB for MongoDB 虛擬核心叢集。
- 如果您沒有 Azure 訂用帳戶,請建立免費帳戶。
- 如果您有現有的 Azure 訂用帳戶,請建立新的 Azure Cosmos DB for MongoDB 虛擬核心叢集。
- 現有的 Log Analytics 工作區或 Azure 儲存體帳戶。
建立診斷設定
系統會自動收集平台計量和活動記錄。 若要收集資源記錄並從 Azure 監視器外部加以路由,您必須建立診斷設定。 在啟用 Azure Cosmos DB 帳戶的診斷設定時,您必須選擇將其路由至 Log Analytics 工作區或 Azure 儲存體帳戶。
建立
clusterName
和resourceGroupName
的殼層變數。# Variable for API for MongoDB vCore cluster resource clusterName="<resource-name>" # Variable for resource group resourceGroupName="<resource-group-name>"
建立
workspaceName
和diagnosticSettingName
的殼層變數。# Variable for workspace name workspaceName="<storage-account-name>" # Variable for diagnostic setting name diagnosticSettingName="<diagnostic-setting-name>"
注意
例如,如果 Log Analytics 工作區的名稱是
test-workspace
,而診斷設定的名稱是test-setting
:workspaceName="test-workspace" diagnosticSettingName:"test-setting"
取得 API for MongoDB 虛擬核心叢集的資源識別碼。
az cosmosdb mongocluster show \ --resource-group $resourceGroupName \ --cluster-name $clusterName clusterResourceId=$(az cosmosdb mongocluster show \ --resource-group $resourceGroupName \ --cluster-name $clusterName \ --query "id" \ --output "tsv" \ )
取得 Log Analytics 工作區的資源識別碼。
az monitor log-analytics workspace show \ --resource-group $resourceGroupName \ --name $workspaceName workspaceResourceId=$(az monitor log-analytics workspace show \ --resource-group $resourceGroupName \ --name $workspaceName \ --query "id" \ --output "tsv" \ )
使用
az monitor diagnostic-settings create
建立設定。az monitor diagnostic-settings create \ --resource-group $resourceGroupName \ --name $diagnosticSettingName \ --resource $clusterResourceId \ --export-to-resource-specific true \ --logs '[{category:vCoreMongoRequests,enabled:true,retention-policy:{enabled:false,days:0}}]' \ --workspace $workspaceResourceId
重要
藉由啟用
--export-to-resource-specific true
設定,可確保 API for MongoDB 虛擬核心要求記錄事件會有效率地擷取至特別設計了專用結構描述的vCoreMongoRequests
資料表中。相對地,若忽略
--export-to-resource-specific true
設定,將會導致 API for MongoDB 虛擬核心要求記錄事件路由至一般AzureDiagnostics
資料表。請務必注意,透過入口網站建立診斷設定時,記錄事件目前會流向
AzureDiagnostics
資料表。 對於偏好將記錄匯出至資源特定VCoreMongoRequests
資料表的客戶,建議使用 Azure CLI 搭配--export-to-resource-specific true
選項。
管理診斷設定
有時,您需要尋找或移除設定來加以管理。 az monitor diagnostic-settings
命令群組包含用來管理診斷設定的子命令。
列出所有與 API for MongoDB 虛擬核心叢集相關聯的診斷設定。
az monitor diagnostic-settings list \ --resource-group $resourceGroupName \ --resource $clusterResourceId
使用相關聯的資源和設定的名稱,將特定設定刪除。
az monitor diagnostic-settings delete \ --resource-group $resourceGroupName \ --name $diagnosticSettingName \ --resource $clusterResourceId
使用進階診斷查詢
使用這些資源特定查詢,在 API for MongoDB 虛擬核心叢集中執行常見的疑難排解研究。
重要
本節假設您搭配使用 Log Analytics 工作區與資源特定記錄。
瀏覽至 API for MongoDB 虛擬核心叢集的 [記錄] 區段。 觀察範例查詢的清單。
執行此查詢,以計算依錯誤碼分組的失敗 API for MongoDB 虛擬核心要求數目。
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)
執行此查詢,以依作業名稱取得 API for MongoDB 虛擬核心要求
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
執行此查詢,以取得依執行階段持續時間總計分組的 API for MongoDB 虛擬核心要求計數。
// 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)
執行此查詢,以依使用者代理程式取得 API for MongoDB 虛擬核心要求計數。
// 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
相關內容
- 深入了解與 MongoDB 的功能相容性。
- 檢閱從 MongoDB 移轉至 Azure Cosmos DB for MongoDB 虛擬核心的選項
- 從建立帳戶開始著手。