動的しきい値を使用してメトリック アラートを作成する

動的しきい値は高度な機械学習を適用し、一連のアルゴリズムとメソッドを使用して次の処理を行います:

  • メトリックの履歴の動作を学習する
  • 長時間にわたってメトリックを分析し、時間単位パターン、日単位パターン、週単位パターンなどのパターンを特定する
  • サービスの問題の可能性を示す異常を認識する
  • メトリックに最適なしきい値を計算する

動的しきい値を使用すると、動的しきい値によって最適なしきい値が計算されるため、各メトリックの "適切な" しきい値を把握する必要はありません。

次のメトリックの動的しきい値を使用してアラート ルールを構成することをお勧めします。

  • 仮想マシンの CPU 使用率
  • Application Insights での HTTP 要求の実行時間

動的しきい値は、次の場合に役立ちます。

  • 1 つのアラート ルールを使用して、数百のメトリック シリーズに対してスケーラブルなアラートを作成する。 警告ルールの数が少ない場合は、警告ルールの作成と管理に費やす時間が少なくなります。 スケーラブルなアラートは、サブスクリプション内のすべてのリソースなど、複数のディメンションや複数のリソースに特に役立ちます。
  • 構成するしきい値を認識せずにルールを作成する。 動的しきい値を使用すると、メトリックに関する広範なドメインの知識がなくても、大まかな概念を使用してメトリック アラートを構成できます。
  • メトリックに関する広範なドメインの知識なしに、大まかな概念を使用してメトリック アラートを構成する。
  • 予期されるパターンを含まない、ノイズの多い (低精度) しきい値またはワイドな (低再現率) しきい値を抑制する。
  • ノイズの多いメトリック (コンピューターの CPU やメモリなど)、および分散度が低いメトリック (可用性やエラー率など) を処理する。

動的しきい値は、次のメトリックに使用できます。

  • ほとんどの Azure Monitor プラットフォームおよびカスタム メトリック
  • 一般的なアプリケーションおよびインフラストラクチャのメトリック
  • コンピューターの CPU やメモリなど、ノイズの多いメトリック
  • 可用性やエラー率など、分散度が低いメトリック (動的しきい値でサポートされていないメトリックの一覧については、「動的しきい値でサポートされていないメトリック」を参照)

動的しきい値は、次の手段で構成できます。

アラートのしきい値の計算とプレビュー

アラート ルールが最初に作成されると、動的しきい値によって 10 日間の履歴データを使用して、時間単位または日単位の季節パターンが計算されます。 アラート プレビューに表示されるグラフには、そのデータが反映されます。 アラート ルールが作成されると、動的しきい値により、使用可能なすべての履歴データを継続的に使用して学習が行われ、しきい値がより正確に調整されます。 3 週間後、動的しきい値には週単位パターンを識別するのに十分なデータがあり、モデルは週単位の季節性を含むように調整されます。 動的しきい値を使用するアラート ルールでは、3 日間および 30 個以上のメトリック データのサンプルを収集するまでアラートはトリガーされません。

システムは、長時間の停止を自動的に認識し、しきい値学習アルゴリズムから削除します。 長時間の停止が発生した場合、動的しきい値によってデータが理解され、停止が発生する前と同じレベルの感度でシステムの問題が検出されます。

動的しきい値を使用する場合の考慮事項

  • しきい値を正確に計算するために、動的しきい値を使用するアラートでは、3 日間および 30 個以上のメトリック データのサンプルを収集までアラートはトリガーされません。 そのため、新しいリソースや、メトリック データが不足しているリソースの場合、十分なデータが使用可能になるまでアラートはトリガーされません。
  • 動的しきい値では、週単位の季節性を検出するために、少なくとも 3 週間の履歴データが必要です。 2 時間ごとのパターンや週 2 回のパターンなど、一部の詳細なパターンは検出されない場合があります。
  • メトリックの動作が最近変化した場合、その変化は動的しきい値の上限と下限に瞬時には反映されません。 その境界は、過去 10 日間のメトリック データに基づいて計算されます。 特定のメトリックに対する動的しきい値の境界を表示するときに、最近の時間や日だけでなく、過去 1 週間のメトリック傾向を確認してください。
  • 動的しきい値は、緩やかに変化する問題とは逆に、大きな偏差を検出する場合に有効です。 動作が遅い変更では、アラートがトリガーされない可能性があります。

動的しきい値の感度に関する既知の問題

  • 動的しきい値を使用するアラート ルールが、ノイズが多すぎるか、あまりに頻繁に実行される場合は、動的しきい値アラート ルールの感度を低くする必要がある可能性があります。 次のいずれかのオプションを使用します。

    • しきい値の感度: 逸脱に対する耐性を上げるには、感度を [低] に設定します。
    • 違反の数 ([詳細設定] の下): 一定の時間内に逸脱が複数回発生した場合にのみトリガーするアラート ルールを構成します。 この設定により、ルールは一時的な逸脱の影響を受けにくくなります。
  • 動的しきい値を使用するアラート ルールが、高い感度で構成されているにもかかわらず、実行されなかったり、感度が十分でなかったりする場合があります。 これは、メトリックの分布の不規則性が高いときに発生することがあります。 問題を解決するために、次のいずれかの解決策を検討します。

    • シナリオに適した補完的なメトリックの監視に移ります (該当する場合)。 たとえば、失敗率ではなく成功率の変化を確認します。
    • [集約粒度 (期間)] で別の値を選択してみます。
    • 過去 10 日間に、メトリックの動作が大幅に変化したかどうか (停止など) を確認します。 突然変化すると、メトリックに対して計算された上限と下限のしきい値に影響を与え、それらが広がる可能性があります。 しきい値の計算で停止が考慮されなくなるまで数日待ちます。 [詳細設定][次よりも前のデータを無視します] オプションを使用するようにアラート ルールを編集することもできます。
    • データに週単位の季節性があるが、メトリックに十分な履歴がない場合、計算されたしきい値によって、上限と下限が広がる可能性があります。 たとえば、この計算では平日と週末を同じ方法で扱い、データに適合しないことがある広い境界を作成する可能性があります。 この問題は、十分なメトリック履歴が使用可能になると自動的に解決されるはずです。 その後、適切な季節性が検出され、計算されたしきい値が適宜更新されます。
  • メトリック値で大きな変動が示されている場合、動的しきい値によって作成されるメトリック値を中心としたモデルが大きくなり、その結果として境界が予想よりも低くなったり高くなったりする可能性があります。 このシナリオは次の場合に発生することがあります。

    • 感度が低く設定されている。
    • メトリックで、変動幅が大きい不規則な動作が示されている (データにスパイクやディップとして示されている)。

    より高い感度を選択するか、[遡って確認する期間] でより大きな値を選択して、モデルの感度を低くすることを検討してください。 [次よりも前のデータを無視します] オプションを使って、モデルを作成するために使用される履歴データから最近の不規則性を除外することもできます。

動的しきい値を構成する

次の設定を使用して、アラート ルールを作成または編集する手順に従います

  1. [条件] タブで
    1. [しきい値] フィールドで、[動的] を選択します。
    2. [集計の種類] では、[最大] を選択しないことをお勧めします。
    3. [演算子] フィールドで、動きがアプリケーションの使用状況を表す場合を除き、[より大きい] を選びます。
    4. [しきい値の感度][中] または [低] を選択して、アラートのノイズを減らします。
    5. [確認する間隔] フィールドで、アラートのビジネスへの影響に基づいて、頻度を低くすることを検討します。
    6. [遡って確認する期間] で、遡って確認する期間を 15 分以上に設定します。 たとえば、[確認する間隔] フィールドを 5 分に設定する場合、遡って確認する期間を 3 分以上に設定する必要があります。
  2. 残りのプロセスに進み、アラート ルールを作成します。

Note

ポータルで作成したメトリック アラート ルールは、ターゲット リソースと同じリソース グループに作成されます。

動的しきい値のグラフを理解する

次に示すのは、メトリック、その動的しきい値の制限、および値が許可されたしきい値を超えたときに発生したアラートを示すグラフです。

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

次のステップ