アラート ルールのしきい値として使用する最適な値がわからない場合は、動的しきい値によって高度な機械学習が適用され、一連のアルゴリズムと方法が使用されます。
- メトリックとログ クエリ結果の履歴動作について説明します。
- 時間の経過と同時にデータを分析し、時間単位、日単位、週単位のパターンなどのパターンを特定します。
- 考えられる問題を示す異常を認識します。
- 最適なしきい値を計算します。
動的しきい値を使用すると、メトリックごとに適切なしきい値を把握する必要はありません。 動的しきい値が最適なしきい値を計算します。
動的しきい値は、次の場合に役立ちます。
- 1 つのアラート ルールを使用して、数百のメトリック シリーズに対してスケーラブルなアラートを作成する。 アラート ルールの数が少ないほど、アラート ルールの作成と管理に費やす時間が少なくなります。 スケーラブルなアラートは、サブスクリプション内のすべてのリソースなど、複数のディメンションや複数のリソースに特に役立ちます。
- 構成するしきい値を認識せずにルールを作成する。
- メトリックに関する広範なドメインの知識なしに、大まかな概念を使用してメトリック アラートを構成します。
- 予期されるパターンを含まない、ノイズの多い (低精度) しきい値または幅の広い (低再現率) しきい値を抑制します。
動的しきい値は、次のメトリックに使用できます。
- ほとんどの Azure Monitor プラットフォームおよびカスタム メトリック。
- 一般的なアプリケーションおよびインフラストラクチャのメトリック。
- 仮想マシンの CPU やメモリからのメトリックや、可用性やエラー率などの分散が低いメトリックなど、ノイズの多いメトリック。
- クエリ結果をログに記録します。
動的しきい値は、次の手段で構成できます。
- Azure ポータル。
- メトリック アラート テンプレート。
- メトリック アラート ルール用の PowerShell、CLI、または Azure Resource Manager テンプレート。
- ログ検索アラート ルール用の Azure Resource Manager テンプレート。 PowerShell と CLI はまだサポートされていません。
アラートのしきい値の計算とプレビュー
アラート ルールが作成されると、動的しきい値によって 10 日間の履歴データを使用して、時間単位または日単位の季節パターンが計算されます。 アラート プレビューに表示されるグラフには、そのデータが反映されます。
動的しきい値により、使用可能なすべての履歴データを継続的に使用して学習が行われ、しきい値がより正確になるように調整されます。 3 週間後、動的しきい値には週単位パターンを識別するのに十分なデータがそろい、モデルは週単位の周期性を含むように調整されます。
これにより、障害終了後もしきい値が通常の動作と整合性を保ち、障害状態を新たな標準として適応することはありません。 短期間の急激な変動やフラッピング現象は異なる方法で処理されます。動的しきい値は、季節性と傾向検出を適用し、違反の持続時間の最小値を考慮して、短時間の異常からの誤検出の頻度を減らします。
動的しきい値を使用する場合の考慮事項
- しきい値の正確な計算を確実にするために、動的しきい値を使用するアラート ルールでは、3 日間と少なくとも 30 個のデータ サンプルを収集する前にアラートがトリガーされません。 データが不足している新しいリソースまたはリソースは、十分なデータが使用可能になるまでアラートをトリガーしません。
- 動的しきい値では、週単位の季節性を検出するために、少なくとも 3 週間の履歴データが必要です。 2 時間ごとのパターンや週 2 回のパターンなど、一部の詳細なパターンは検出されない場合があります。
- データの動作の変化 – データの動作が最近変更された場合、変更はすぐに動的しきい値の上限と下限に反映されません。 その境界は、過去 10 日間のメトリック データに基づいて計算されます。
- 動的しきい値は、緩やかに変化する問題とは逆に、大きな偏差を検出する場合に有効です。 動作が遅い変更では、アラートがトリガーされない可能性があります。
- 複数の条件を監視するアラート ルールでは、動的しきい値を使用できません。
- 1 分間の頻度でログ検索アラート ルールで動的しきい値を使用することはできません。
動的しきい値を使用してメトリック アラート ルールを作成する
動的しきい値を構成するには、アラート ルールを作成するための手順に従います。 [条件] タブで以下の設定を使用します。
- [しきい値]: [動的] を選択します。
- [集計の種類]: [最大] を選択しないことをお勧めします。
- [演算子]: 動きがアプリケーションの使用状況を表す場合を除き、[より大きい] を選びます。
- [しきい値の感度]: [中] または [低] を選択して、アラートのノイズを減らします。
- [確認する間隔]: アラート ルールが条件を満たしているかどうかを確認する頻度を選択します。 アラートのビジネスへの影響を最小限に抑えるには、頻度を低くすることを検討してください。 この値が、[ルックバック期間] の値以下であることを確認します。
- [ルックバック期間]: データをチェックするたびに振り返る期間を設定します。 この値が、[確認する間隔] の値以上であることを確認します。
- [詳細設定]: 特定の期間内にアラートをトリガーする違反の数を選択します。 必要に応じて、メトリック履歴データの学習を開始する日付を設定し、動的しきい値を計算します。
注
ポータルで作成したメトリック アラート ルールは、ターゲット リソースと同じリソース グループに作成されます。
動的しきい値のグラフ
次に示すのは、メトリック、その動的しきい値の制限、および値が許可されたしきい値を超えたときに発生したアラートを示すグラフです。
次の情報を使ってグラフを解釈します。
- 青い線: 時間の経過とともに測定されたメトリック。
- 青色の網掛けされた領域: メトリックで許容される範囲。 メトリック値がこの範囲内にある場合、アラートはトリガーされません。
- 青い点: 集計されたメトリック値。 グラフの一部を選んでから、青い線をポイントすると、個々の集計されたメトリック値を示す青い点がカーソルの下に表示されます。
- 青い点のポップアップ ボックス: 測定されたメトリック値 (青い点) と、許容範囲の上限値と下限値。
- 黒い円で囲まれた赤い点: 許容範囲外の最初のメトリック値。 この値は、メトリック アラートを発生させ、アクティブな状態にします。
- 赤い点: 許容範囲外の他の測定値。 さらなるメトリック アラートはトリガーされませんが、アラートはアクティブな状態のままになります。
- 赤色の領域: メトリック値が許容範囲外であった時刻。 アラートは、後続の測定値が許容範囲外にある限りアクティブ状態のままですが、新しいアラートは発生しません。
- 赤い領域の終了: 許容値に戻ります。 青い線が許容値の内側に戻ると、赤色の領域が停止し、測定値の線が青に変わります。 黒い円で囲まれた赤い点の時点で発生したメトリック アラートの状態が [解決済み] に設定されます。
動的しきい値でサポートされていないメトリック
動的しきい値はほとんどのメトリックでサポートされていますが、以下のメトリックでは動的しきい値を使用できません。
| リソースの種類 | メトリックの名前 |
|---|---|
| Microsoft.ClassicStorage/storageAccounts | 使用容量 |
| Microsoft.ClassicStorage/storageAccounts/blobServices | BlobCapacity |
| Microsoft.ClassicStorage/storageAccounts/blobServices | BlobCount |
| Microsoft.ClassicStorage/storageAccounts/blobServices | IndexCapacity |
| Microsoft.クラシックストレージ/ストレージアカウント/ファイルサービス | ファイル容量 |
| Microsoft.クラシックストレージ/ストレージアカウント/ファイルサービス | ファイル数 |
| Microsoft.クラシックストレージ/ストレージアカウント/ファイルサービス | ファイル共有数 |
| Microsoft.クラシックストレージ/ストレージアカウント/ファイルサービス | FileShareSnapshotCount |
| Microsoft.クラシックストレージ/ストレージアカウント/ファイルサービス | FileShareSnapshotSize |
| Microsoft.クラシックストレージ/ストレージアカウント/ファイルサービス | FileShareQuota |
| Microsoft.Compute/disks | 複合ディスク読み取りバイト数/秒 |
| Microsoft.Compute/disks | 複合ディスク読み取り操作数/秒 |
| Microsoft.Compute/disks | 複合ディスク書き込みバイト数/秒 |
| Microsoft.Compute/disks | 複合ディスク書き込み操作数/秒 |
| Microsoft.ContainerService/managedClusters | ノード数 |
| Microsoft.ContainerService/managedClusters | ポッドカウント |
| Microsoft.ContainerService/managedClusters | 完了した仕事数 |
| Microsoft.ContainerService/managedClusters | RestartingContainerCount |
| Microsoft.ContainerService/managedClusters | OomKilledContainerCount |
| Microsoft.Devices/IotHubs | デバイス総数 |
| Microsoft.Devices/IotHubs | 接続デバイス数 |
| Microsoft.DocumentDB/databaseAccounts | Cassandra接続終了処理 |
| Microsoft.EventHub/クラスター | サイズ |
| Microsoft.EventHub/名前空間 | CPU |
| Microsoft.EventHub/名前空間 | メモリ使用量 |
| Microsoft.EventHub/名前空間 | ReplicationLagCount |
| Microsoft.EventHub/名前空間 | サイズ |
| Microsoft.IoTCentral/IoTApps | 接続デバイス数 |
| Microsoft.IoTCentral/IoTApps | 設定済みデバイス数 |
| Microsoft.Kubernetes/connectedClusters | ノード数 |
| Microsoft.Kubernetes/connectedClusters | ポッドカウント |
| Microsoft.Kubernetes/connectedClusters | 完了した仕事数 |
| Microsoft.Kubernetes/connectedClusters | RestartingContainerCount |
| Microsoft.Kubernetes/connectedClusters | OomKilledContainerCount |
| Microsoft.MachineLearningServices/workspaces/onlineEndpoints | 1分あたりのリクエスト数 |
| Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments | デプロイメント容量 |
| Microsoft.Maps/アカウント | 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 | キュー/トピック内のアクティブなメッセージの数。 (ActiveMessages) |
| Microsoft.ServiceBus/namespaces | キュー/トピック内の配信不能メッセージの数 (DeadletteredMessages) |
| Microsoft.ServiceBus/namespaces | キュー/トピック内のメッセージの数 (Messages) |
| Microsoft.ServiceBus/namespaces | キュー/トピック内のスケジュールされたメッセージの数 (ScheduledMessages) |
| Microsoft.ServiceBus/namespaces | CPU (ネームスペースCPU使用率) |
| Microsoft.ServiceBus/namespaces | メモリ使用量 (NamespaceMemoryUsage) |
| Microsoft.ServiceBus/namespaces | サイズ |
| Microsoft.ServiceFabricMesh/applications | 割り当てられたCPU |
| Microsoft.ServiceFabricMesh/applications | 割り当てられたメモリ |
| Microsoft.ServiceFabricMesh/applications | ActualCpu |
| Microsoft.ServiceFabricMesh/applications | ActualMemory |
| Microsoft.ServiceFabricMesh/applications | 申請状況 |
| Microsoft.ServiceFabricMesh/applications | ServiceStatus |
| Microsoft.ServiceFabricMesh/applications | ServiceReplicaStatus |
| Microsoft.ServiceFabricMesh/applications | ContainerStatus |
| Microsoft.ServiceFabricMesh/applications | 再起動回数 |
| Microsoft.Storage/storageAccounts | 使用容量 |
| Microsoft.Storage/storageAccounts/blobServices(ストレージアカウントとブロブサービス) | BlobCapacity |
| Microsoft.Storage/storageAccounts/blobServices(ストレージアカウントとブロブサービス) | BlobCount |
| Microsoft.Storage/storageAccounts/blobServices(ストレージアカウントとブロブサービス) | BlobProvisionedSize |
| Microsoft.Storage/storageAccounts/blobServices(ストレージアカウントとブロブサービス) | IndexCapacity |
| Microsoft.Storage/storageAccounts/fileServices | ファイル容量 |
| Microsoft.Storage/storageAccounts/fileServices | ファイル数 |
| Microsoft.Storage/storageAccounts/fileServices | ファイル共有数 |
| Microsoft.Storage/storageAccounts/fileServices | FileShareSnapshotCount |
| Microsoft.Storage/storageAccounts/fileServices | FileShareSnapshotSize |
| Microsoft.Storage/storageAccounts/fileServices | ファイル共有容量制限 |
| Microsoft.Storage/storageAccounts/fileServices | FileShareProvisionedIOPS |
動的しきい値を使用してクエリベースのメトリック アラート ルールを作成する (プレビュー)
Azure Monitorクエリベースのメトリック アラート ルールで動的しきい値を使用して、PromQL 式の異常な動作を検出してアラートを生成し、Azure Monitor ワークスペースの Prometheus メトリックと OTel メトリックのマネージド サービスAzure Monitor監視します。
Important
動的しきい値は、ブール式ではなく 数値 となる PromQL 式で最適に機能します。 たとえば、CPU > 0.8 のようなブール値比較ではなく、CPU 使用率を計算する式を使用します。
クエリ ベースのメトリック アラート ルールの動的しきい値を構成するには、 クエリベースのメトリック アラート ルールを作成する手順に従います。 [条件] タブで以下の設定を使用します。
[しきい値の種類] で、[動的] を選択します。
目的の 演算子 条件を選択します。
動的しきい値に適した規則 PromQL式 を構成します。 式の値が動的に計算されたしきい値を超えると、条件が満たされます。
[しきい値の感度]: [中] または [低] を選択して、アラートのノイズを減らします。
動的しきい値プレビューチャート
次のグラフは、クエリベースのメトリック アラート ルール式の値、動的しきい値の制限、しきい値違反、および値が許可されたしきい値を超えたときに発生したアラートを示しています。
動的しきい値を使用してログ検索アラート ルールを作成する
動的しきい値を構成するには、アラート ルールを作成するための手順に従います。 [条件] タブで次の設定を使用します。
- 静的しきい値と同じ方法でクエリ、測定、およびディメンションを構成します。
- [しきい値] で、[動的] を選択します。
- [プレビュー グラフ] を選択すると、計算された動的しきい値と共に過去のクエリ結果が表示され、しきい値が通常のパターンにどのように適応し、潜在的なアラートが発生するかを視覚化するのに役立ちます。
- [条件] タブで変更が行われたら、[グラフの更新] を選択して、更新されたプレビューを表示します。
注
動的しきい値を持つログ検索アラート ルールでは、1 分の頻度はサポートされていません。
動的しきい値プレビューチャート
次のグラフは、ログ アラート ルールのクエリ結果の値、動的しきい値の制限、しきい値違反、および値が許可されたしきい値を超えたときに発生したアラートを示しています。 このシナリオでは、アラートを発生させるために必要な違反の数は 2 です。
- 青い線: クエリ結果の時間経過に伴う測定値。
- 紫の網掛け領域: 計算された動的しきい値範囲。 クエリ結果に使用できる値の範囲。 値がこの範囲内に留まる場合、アラートはトリガーされません。
- 赤い点: 赤い点はしきい値が満たされた違反評価を示します。
- ピンクのバーは、トリガーされたログ検索アラートを表します。
注
プレビュー グラフのパフォーマンスを確保するために、返されるデータ ポイントの数に制限が適用され、その結果、アラート ルールの頻度に応じて、許可される時間範囲が表示されます。 5 分の周波数で 6 時間をサポートします。 10 ~ 15 分の周波数では、6 時間と 12 時間がサポートされます。 30 分の周波数では、6 時間と 12 時間と 1 日がサポートされます。 1 時間以上の頻度では、6 時間、12 時間、1 日、2 日に対応しています。
動的しきい値の感度に関する既知の問題
ノイズが多すぎる、十分な頻度で発生しない、または予期しないしきい値が表示される動的しきい値アラート ルールを調整するには、「Azure Monitor のメトリック アラートのトラブルシューティング」を参照してください。
関連コンテンツ
動的しきい値に関するフィードバックがあれば、メールお知らせください。