搭配動態閾值建立計量警示

動態閾值會套用進階機器學習,並使用一組演算法和方法來:

  • 了解計量的歷程記錄
  • 分析一段時間的計量和識別模式,例如每小時、每日或每週模式
  • 辨識可能表示服務有問題的異常情況
  • 計算最適合計量的閾值

當您使用動態閾值時,不需要知道每個計量的「正確」閾值,因為動態閾值會為您計算最適當的閾值。

建議您在這些計量上設定具有動態閾值的警示規則:

  • 虛擬機器 CPU 百分比
  • Application Insights HTTP 要求執行時間

動態閾值有助於:

  • 使用一個警示規則,為數百個計量序列建立可調整的警示。 如果您的警示規則不多,則建立和管理警示規則所需的時間就會較短。 可調整的警示特別適用於多個維度或多個資源,例如訂用帳戶中的所有資源。
  • 建立規則,而不需要知道要設定哪種閾值。 使用高動態閾值,可以透過階概念來設定計量警示,而不需大量的計量領域相關知識
  • 使用高階概念來設定計量警示,而不需大量的計量領域相關知識
  • 避免不具預期模式的雜訊 (低精確度) 或廣泛 (低召回率) 閾值
  • 處理雜訊計量 (例如電腦 CPU 或記憶體) 以及具有低離散程度的計量 (例如可用性和錯誤率)

您可在下列位置使用動態閾值:

  • 大部分的 Azure 監視器平台和自訂計量
  • 通用應用程式和基礎結構計量
  • 嘈雜計量,例如機器 CPU 或記憶體
  • 具有低分散的計量,例如可用性和錯誤率,請參閱動態閾值不支援的計量 ,以取得動態閾值不支援的計量清單。

您可以使用下列項目來設定動態閾值:

警示閾值計算和預覽

第一次建立警示規則時,動態閾值會使用 10 天的歷史資料來計算每小時或每日季節性模式。 您在警示預覽中看到的圖表反映該資料。 建立警示規則之後,動態閾值會持續使用所有可用的歷程記錄資料來學習,並調整閾值以求精確。 三周之後,動態閾值有足夠的資料來識別每周模式,並調整模型以包含每周季節性。 使用動態閾值的警示規則不會在收集三天和至少 30 個計量資料樣本之前觸發警示。

系統會自動辨識長時間的中斷,並從臨界值學習演算法中將其移除。 如果有長時間的中斷,動態閾值會了解資料,並偵測系統問題與發生中斷前相同的敏感度層級。

使用動態閾值時的考量

  • 為確保正確計算閾值,使用動態閾值的警示不會在收集三天和至少 30 個計量資料樣本之前觸發警示。 因此,在有足夠的資料可用之前,遺漏計量資料的新資源或資源不會觸發警示。
  • 動態閾值需要至少需要三周的歷史資料來偵測每週季節性。 可能無法偵測到某些詳細的模式,例如每小時或半周模式。
  • 如果計量的行為最近發生變更,則變更不會立即反映在動態閾值中 (上限和下限)。 邊界的計算方式是以過去 10 天的計量資料為基礎。 當您檢視指定計量的動態閾值邊界時,請查看過去一週 (而不只是最近幾小時或幾天) 的計量趨勢。
  • 動態閾值適合用於偵測明顯的偏差,與不是緩慢發展的問題不同。 緩慢的行為變更可能不會觸發警示。

動態閾值敏感度的已知問題

  • 如果使用動態閾值的警示規則太吵鬧或太多,您可能需要降低動態閾值警示規則的敏感度。 使用下列其中一個選項:

    • 閾值敏感度:將敏感度設定為 [低],以提高偏差的容忍度。
    • ([進階設定] 下方) 的違規次數:設定警示規則,只有在特定時段內發生數次偏差時才會觸發。 此設定會使規則較不容易受到暫時性偏差的影響。
  • 您可能會遇到使用動態閾值的警示規則未引發或不夠敏感的情況,即使已設定高敏感度也一樣。 當計量的分佈非常不規則時會發生這種情況。 考慮下列其中一個解決方案來修正問題:

    • 移至監視適合您情況的補充計量,如果適用。 例如,檢查成功率 (而不是失敗率) 的變更。
    • 請嘗試選取不同的彙總細微性 (期間) 值。
    • 檢查過去 10 天內計量行為是否有大幅變更,例如中斷。 突然變更可能會影響針對計量計算的上限和較低的閾值,並使其更擴大。 請等候幾天,直到中斷不再計入閾值計算。 您也可以編輯警示規則,在 [進階設定] 中使用 [忽略資料] 選項。
    • 如果您的資料具有每週季節性,但沒有足夠的歷程記錄可供計量使用,則計算的閾值可能會導致上限和下限擴大。 例如,計算可以以相同方式處理工作日和週末,並建置不一定符合資料的寬邊界。 此問題應該會在有足夠的計量歷程記錄可用之後自行解決。 然後將偵測到正確的季節性,並據以更新計算的閾值。
  • 當計量值出現大型波動時,動態閾值會以計量值為基礎建置更廣泛的模型,這可能會導致較預期低或更高的邊界。 在下列情況下可能會發生此狀況:

    • 敏感度設定為低。
    • 計量顯示異常行為,並具有較高的變異數 (在資料中出現尖峰或下降)。

    請考慮選擇較嚴格的敏感度,或選取較大的 Lookback 期間,讓模型變得不那麼敏感。 您也可使用 [忽略資料 (以下時間之前)] 選項,從用來建置模型的歷程記錄資料中排除最近的異常。

設定動態閾值

依照程序使用這些設定來建立或編輯警示規則

  1. [條件] 索引標籤中,
    1. 在 [閾值] 字段中,選取 [動態]
    2. 在 [彙總類型]中,建議您不要選取 [最大]
    3. 除非行為代表應用程式使用量,否則請在 [運算子] 欄位選取 [大於]
    4. 在 [敏感度] 閾值選取 [中] 或 [低] 敏感度以減少警示干擾。
    5. 在 [檢查所有] 欄位,請考慮根據警示的業務影響,降低頻率。
    6. 在 [回溯期間]中,將 [回溯] 視窗設定為至少 15 分鐘。 例如,如果 [檢查所有] 欄位設定為 5 分鐘,則回溯期間應該至少為 3 個以上。
  2. 繼續進行其餘程序以建立警示規則。

注意

透過入口網站建立的計量警示規則,會在與目標資源相同的資源群組中建立。

了解動態閾值圖表

下圖顯示計量、其動態閾值限制,以及值超出允許閾值時所引發的某些警示。

Screenshot that shows a metric, its dynamic thresholds limits, and some alerts that fired.

使用下列資訊來解譯圖表:

  • 藍色線條:經過一段時間後實際測量的計量。
  • 藍色陰影區域:顯示計量的允許範圍。 只要計量值停留在此範圍內,就不會觸發任何警示。
  • 藍色虛線:如果您以滑鼠左鍵選取圖表的部分,然後將滑鼠停留在藍色線條上方,您會看到藍色虛線出現在游標下方,顯示個別的彙總計量值。
  • 藍色虛線的快顯視窗:顯示測量的計量值 (藍色虛線),以及允許範圍的上層值和下層值。
  • 黑色圓圈的紅色虛線:顯示超出允許範圍的第一個計量值。 這個值會引發計量警示並將其置於主動狀態。
  • 紅色虛線:指出超出允許範圍的其他測量值。 其不會觸發其他計量警示,但警示會維持主動狀態。
  • 紅色區域:顯示計量值超出允許範圍的時間。 只要後續的測量值超出允許的範圍,但未引發任何新的警示,警示就會維持主動狀態。
  • 紅色區域結尾:當藍色線條回到允許的值內時,紅色區域隨即停止,而測量值線條會變成藍色。 在黑色外框的紅色虛線設定為已解決時,就會引發計量警示的狀態。

動態閾值不支援的計量

大部分計量都支援動態閾值,但某些計量無法使用動態閾值。

下表列出動態閾值不支援的計量。

資源類型 度量名稱
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

下一步