搭配動態閾值建立計量警示
您可能不確定要用來作為警示規則閾值的正確數位。 動態閾值會套用進階機器學習,並使用一組演算法和方法來:
- 了解計量的歷程記錄。
- 分析一段時間的計量和識別模式,例如每小時、每日或每週模式。
- 辨識可能表示服務有問題的異常情況。
- 計算對於計量最適當的閾值。
當您使用動態閾值時,不需要知道每個計量的正確閾值。 動態閾值會為您計算最適當的閾值。
建議您在這些計量上設定具有動態閾值的警示規則:
- 虛擬機器 CPU 百分比
- Application Insights HTTP 要求執行時間
動態閾值有助於:
- 使用一個警示規則,為數百個計量序列建立可調整的警示。 如果您的警示規則不多,則建立和管理所需的時間就會較短。 可調整的警示特別適用於多個維度或多個資源,例如訂用帳戶中的所有資源。
- 建立規則,而不需要知道要設定哪種閾值。
- 使用高階概念來設定計量警示,而不需大量的計量領域相關知識。
- 避免不具預期模式的雜訊 (低精確度) 或廣泛 (低召回率) 閾值。
您可在下列位置使用動態閾值:
- 大部分的 Azure 監視器平台和自訂計量。
- 通用應用程式和基礎結構計量。
- 嘈雜計量,例如機器 CPU 或記憶體。
- 低離散的計量,例如可用性和錯誤率。
您可以使用下列項目來設定動態閾值:
- Azure 入口網站。
- 完全自動化 Azure Resource Manager API。
- 計量警示範本。
警示閾值計算和預覽
建立警示規則時,動態閾值會使用 10 天的歷史資料來計算每小時或每日季節性模式。 您在警示預覽中看到的圖表反映該資料。
動態閾值會持續使用所有可用的歷史資料來學習,並做出更精確的調整。 三週之後,動態閾值便有足夠的資料來識別每週模式,並調整模型以包含每週季節性。
系統會自動辨識長時間的中斷,並從臨界值學習演算法中將其移除。 如果長時間中斷,則動態閾值會掌握資料。 其會偵測敏感度層級與發生中斷前相同的系統問題。
使用動態閾值時的考量事項
- 為協助確保正確計算閾值,使用動態閾值的警示規則不會在收集三天和至少 30 個計量資料樣本之前觸發警示。 在有足夠的資料可用之前,遺漏計量資料的新資源或資源不會觸發警示。
- 動態閾值需要至少需要三周的歷史資料來偵測每週季節性。 可能無法偵測到某些詳細的模式,例如每兩小時或半週模式。
- 如果計量的行為最近發生變更,則變更不會立即反映在動態閾值中 (上限和下限)。 邊界的計算方式是以過去 10 天的計量資料為基礎。 當您檢視特定計量的動態閾值邊界時,請查看過去一週 (而不只是最近幾小時或幾天) 的計量趨勢。
- 動態閾值適合用於偵測明顯的偏差,與不是緩慢發展的問題不同。 緩慢的行為變更可能不會觸發警示。
- 您無法在監視多個條件的警示規則中使用動態閾值。
設定動態閾值
若要設定動態閾值,請遵循建立警示規則的程序。 在 [條件] 索引標籤上使用這些設定:
- 針對 [閾值],選取 [動態]。
- 在 [彙總類型] 中,建議您不要選取 [最大]。
- 針對 [運算子],除非行為代表應用程式使用量,否則請選取 [大於]。
- 針對 [閾值敏感度],選取 [中] 或 [低] 以減少警示干擾。
- 針對 [檢查間隔],選取警示規則檢查條件是否符合的頻率。 若要將警示的業務影響降到最低,請考慮使用較低的頻率。 請確定此值小於或等於 [回溯期間] 值。
- 針對 [回溯期間],設定時間週期,以在每次檢查資料時回溯查看。 請確定此值大於或等於 [檢查間隔] 值。
- 針對 [進階選項],選擇在特定時間內,將觸發警示的違規數目。 您可以選擇性地設定開始學習計量歷史資料及計算動態閾值的日期。
注意
您透過入口網站建立的計量警示規則,會在與目標資源相同的資源群組中建立。
動態閾值圖表
下圖顯示計量、其動態閾值限制,以及值超出允許閾值時所引發的某些警示。
使用下列資訊來解譯圖表:
- 藍色線條:在一段時間內測量的計量。
- 藍色陰影區域:計量的允許範圍。 只要計量值停留在此範圍內,就不會觸發任何警示。
- 藍色點:彙總的計量值。 如果您選取圖表的部分,然後將滑鼠停留在藍色線條上方,您會看到藍色虛線出現在游標下方,指出個別的彙總計量值。
- 具有藍色點的快顯方塊:測量的計量值 (藍色虛線),以及允許範圍的上層值和下層值。
- 具有黑色圓圈的紅色點:超出允許範圍的第一個計量值。 這個值會引發計量警示並將其置於主動狀態。
- 紅色點:允許範圍以外的其他測量值。 其不會觸發其他計量警示,但警示會維持主動狀態。
- 紅色區域:計量值超出允許範圍的時間。 只要後續的測量值超出允許的範圍,但未引發任何新的警示,警示就會維持主動狀態。
- 紅色區域結尾:傳回允許的值。 當藍色線條回到允許的值內時,紅色區域隨即停止,而測量值線條會變成藍色。 具有黑色圓圈的紅色點設定為已解決時,就會引發計量警示的狀態。
動態閾值敏感度的已知問題
如果使用動態閾值的警示規則太惱人或引發頻率太高,您可能需要降低其敏感度。 使用下列其中一個選項:
- 閾值敏感度:將敏感度設定為 [低],以提高偏差的容忍度。
- 違規次數 ([進階設定] 下方):設定警示規則,只有在特定時段內發生數次偏差時才會觸發。 此設定會使規則較不容易受到暫時性偏差的影響。
您可能會發現使用動態閾值的警示規則未引發或不夠敏感的情況,即使已設定高敏感度也一樣。 當計量的分佈非常不規則時會發生此案例。 請考慮使用下列其中一個解決方案:
- 移至監視適合您情況的補充計量,如果適用。 例如,檢查成功率 (而不是失敗率) 的變更。
- 請嘗試選取不同的彙總細微性 (期間) 值。
- 檢查過去 10 天內計量行為是否有大幅變更,例如中斷。 突然變更可能會影響針對計量計算的上限和較低的閾值,並使其更擴大。 等候幾天,直到中斷不再包含在閾值計算中。 您也可以編輯警示規則,在 [進階設定] 中使用 [忽略資料 (以下時間之前)] 選項。
- 如果您的資料具有每週季節性,但沒有足夠的歷程記錄可供計量使用,則計算的閾值可能會導致上限和下限擴大。 例如,計算可以以相同方式處理工作日和週末,並建置不一定符合資料的寬邊界。 此問題應該會在有足夠的計量歷程記錄可用之後自行解決。 然後將偵測到正確的季節性,並據以更新計算的閾值。
當計量值出現大型波動時,動態閾值會以計量值為基礎建置更廣泛的模型,這可能會導致較預期低或高的邊界。 在下列情況下可能會發生此狀況:
- 敏感度設定為低。
- 計量顯示異常行為,並具有較高的變異數 (在資料中出現尖峰或下降)。
請考慮選擇較嚴格的敏感度,或選取較大的 [回溯期間] 值,讓模型變得不那麼敏感。 您也可使用 [忽略資料 (以下時間之前)] 選項,從用來建置模型的歷史資料中排除最近的異常。
動態閾值不支援的計量
動態閾值支援大部分的計量,但下列計量無法使用動態閾值:
資源類型 | 度量名稱 |
---|---|
Microsoft.ClassicStorage/storageAccounts | UsedCapacity |
Microsoft.ClassicStorage/storageAccounts/blobServices | BlobCapacity |
Microsoft.ClassicStorage/storageAccounts/blobServices | BlobCount |
Microsoft.ClassicStorage/storageAccounts/blobServices | IndexCapacity |
Microsoft.ClassicStorage/storageAccounts/fileServices | FileCapacity |
Microsoft.ClassicStorage/storageAccounts/fileServices | FileCount |
Microsoft.ClassicStorage/storageAccounts/fileServices | FileShareCount |
Microsoft.ClassicStorage/storageAccounts/fileServices | FileShareSnapshotCount |
Microsoft.ClassicStorage/storageAccounts/fileServices | FileShareSnapshotSize |
Microsoft.ClassicStorage/storageAccounts/fileServices | FileShareQuota |
Microsoft.Compute/disks | 複合磁碟讀取位元組/秒 |
Microsoft.Compute/disks | 複合磁碟讀取作業/秒 |
Microsoft.Compute/disks | 複合磁碟寫入位元組/秒 |
Microsoft.Compute/disks | 複合磁碟寫入作業/秒 |
Microsoft.ContainerService/managedClusters | NodesCount |
Microsoft.ContainerService/managedClusters | PodCount |
Microsoft.ContainerService/managedClusters | CompletedJobsCount |
Microsoft.ContainerService/managedClusters | RestartingContainerCount |
Microsoft.ContainerService/managedClusters | OomKilledContainerCount |
Microsoft.Devices/IotHubs | TotalDeviceCount |
Microsoft.Devices/IotHubs | ConnectedDeviceCount |
Microsoft.Devices/IotHubs | TotalDeviceCount |
Microsoft.Devices/IotHubs | ConnectedDeviceCount |
Microsoft.DocumentDB/databaseAccounts | CassandraConnectionClosures |
Microsoft.EventHub/clusters | 大小 |
Microsoft.EventHub/namespaces | 大小 |
Microsoft.IoTCentral/IoTApps | connectedDeviceCount |
Microsoft.IoTCentral/IoTApps | provisionedDeviceCount |
Microsoft.Kubernetes/connectedClusters | NodesCount |
Microsoft.Kubernetes/connectedClusters | PodCount |
Microsoft.Kubernetes/connectedClusters | CompletedJobsCount |
Microsoft.Kubernetes/connectedClusters | RestartingContainerCount |
Microsoft.Kubernetes/connectedClusters | OomKilledContainerCount |
Microsoft.MachineLearningServices/workspaces/onlineEndpoints | RequestsPerMinute |
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments | DeploymentCapacity |
Microsoft.Maps/accounts | CreatorUsage |
Microsoft.Media/mediaservices/streamingEndpoints | EgressBandwidth |
Microsoft.Network/applicationGateways | 輸送量 |
Microsoft.Network/azureFirewalls | 輸送量 |
Microsoft.Network/expressRouteGateways | ExpressRouteGatewayPacketsPerSecond |
Microsoft.Network/expressRouteGateways | ExpressRouteGatewayNumberOfVmInVnet |
Microsoft.Network/expressRouteGateways | ExpressRouteGatewayFrequencyOfRoutesChanged |
Microsoft.Network/virtualNetworkGateways | ExpressRouteGatewayBitsPerSecond |
Microsoft.Network/virtualNetworkGateways | ExpressRouteGatewayPacketsPerSecond |
Microsoft.Network/virtualNetworkGateways | ExpressRouteGatewayNumberOfVmInVnet |
Microsoft.Network/virtualNetworkGateways | ExpressRouteGatewayFrequencyOfRoutesChanged |
Microsoft.ServiceBus/namespaces | 大小 |
Microsoft.ServiceBus/namespaces | 訊息 |
Microsoft.ServiceBus/namespaces | ActiveMessages |
Microsoft.ServiceBus/namespaces | DeadletteredMessages |
Microsoft.ServiceBus/namespaces | ScheduledMessages |
Microsoft.ServiceFabricMesh/applications | AllocatedCpu |
Microsoft.ServiceFabricMesh/applications | AllocatedMemory |
Microsoft.ServiceFabricMesh/applications | ActualCpu |
Microsoft.ServiceFabricMesh/applications | ActualMemory |
Microsoft.ServiceFabricMesh/applications | ApplicationStatus |
Microsoft.ServiceFabricMesh/applications | ServiceStatus |
Microsoft.ServiceFabricMesh/applications | ServiceReplicaStatus |
Microsoft.ServiceFabricMesh/applications | ContainerStatus |
Microsoft.ServiceFabricMesh/applications | RestartCount |
Microsoft.Storage/storageAccounts | UsedCapacity |
Microsoft.Storage/storageAccounts/blobServices | BlobCapacity |
Microsoft.Storage/storageAccounts/blobServices | BlobCount |
Microsoft.Storage/storageAccounts/blobServices | BlobProvisionedSize |
Microsoft.Storage/storageAccounts/blobServices | IndexCapacity |
Microsoft.Storage/storageAccounts/fileServices | FileCapacity |
Microsoft.Storage/storageAccounts/fileServices | FileCount |
Microsoft.Storage/storageAccounts/fileServices | FileShareCount |
Microsoft.Storage/storageAccounts/fileServices | FileShareSnapshotCount |
Microsoft.Storage/storageAccounts/fileServices | FileShareSnapshotSize |
Microsoft.Storage/storageAccounts/fileServices | FileShareCapacityQuota |
Microsoft.Storage/storageAccounts/fileServices | FileShareProvisionedIOPS |
相關內容
- 管理警示規則 (部分機器翻譯)
如果您有關於動態閾值的意見反應,請傳送電子郵件給我們。