

# アラームデータクエリ
<a name="alarm-data-queries"></a>

CloudWatch アラームは、さまざまなデータソースをモニタリングできます。モニタリングのニーズに基づいて、適切なクエリタイプを選択します。

## メトリクス
<a name="alarm-query-metrics"></a>

単一の CloudWatch メトリクスをモニタリングします。これは、リソースのパフォーマンスを追跡するための最も一般的なアラームタイプです。メトリクスの詳細については、「[CloudWatch メトリクスの概念](cloudwatch_concepts.md)」を参照してください。

詳細については、「[静的しきい値に基づいて CloudWatch アラームを作成する](ConsoleAlarms.md)」を参照してください。

## Metric Math
<a name="alarm-query-metric-math"></a>

1 つ以上の CloudWatch メトリクスに含む数式の結果に基づいてアラームを設定できます。アラーム用の数式には 10 個までのメトリクスを含めることができます。各メトリクスは同じ期間を使用している必要があります。

数式に基づくアラームの場合、データポイントの欠落を CloudWatch で処理する方法を指定できます。この場合、数式がそのデータポイントの値を返さない場合、そのデータポイントは欠落していると見なされます。

数式に基づくアラームでは Amazon EC2 アクションを実行できません。

メトリクスの数式と構文の詳細については、「[CloudWatch メトリクスでの数式の使用](using-metric-math.md)」を参照してください。

詳細については、「[メトリクス数式に基づく CloudWatch アラームの作成](Create-alarm-on-metric-math-expression.md)」を参照してください。

## Metrics Insights
<a name="alarm-query-metrics-insights"></a>

 CloudWatch Metrics Insights クエリは、SQL のような構文を使用してメトリクスを大規模にクエリするのに役立ちます。複数の時系列を返すクエリを含む、任意の Metrics Insights クエリでアラームを作成できます。この機能は、モニタリングオプションを大幅に拡張します。Metrics Insights クエリに基づいてアラームを作成すると、モニタリング対象グループへのリソースの追加または削除に応じてアラームが自動的に調整されます。アラームを 1 回作成すると、クエリ定義とフィルターに一致するリソースは、対応するメトリクスが利用可能になった時点でアラームモニタリングスコープに加わります。複数時系列クエリの場合、返される各時系列がアラームのコントリビューターになり、より詳細で動的なモニタリングが可能になります。

CloudWatch Metrics Insights アラームの 2 つの主なユースケースは以下のとおりです。
+ 異常検出と集計モニタリング

  単一の集約された時系列を返す Metrics Insights クエリにアラームを作成します。このアプローチは、インフラストラクチャまたはアプリケーション全体で集約されたメトリクスをモニタリングする動的アラームに適しています。例えば、すべてのインスタンスの最大 CPU 使用率をモニタリングし、フリートのスケーリング時にアラームを自動的に調整できます。

  集計モニタリングアラームを作成するには、以下のクエリ構造を使用します。

  ```
  SELECT FUNCTION(metricName)
                    FROM SCHEMA(...)
                    WHERE condition;
  ```
+ リソースごとのフリートのモニタリング

  複数の時系列をモニタリングするアラームを作成します。各時系列は、独自の状態を持つコントリビューターとして機能します。アラームは、コントリビューターが ALARM 状態になるとアクティブ化され、リソース固有のアクションがトリガーされます。例えば、複数の RDS インスタンス間のデータベース接続をモニタリングして、接続が拒否されないようにします。

  複数の時系列をモニタリングするには、以下のクエリ構造を使用します。

  ```
  SELECT AVG(DatabaseConnections)
                    FROM AWS/RDS
                    WHERE condition
                    GROUP BY DBInstanceIdentifier
                    ORDER BY AVG() DESC;
  ```

  複数時系列アラームを作成するときは、クエリに 2 つのキー句を含める必要があります。
  + 時系列を構造化する方法を定義し、クエリが生成する時系列の数を決定する `GROUP BY` 句
  + メトリクスの決定的なソートを確立し、アラームが最も重要なシグナルを最初に評価できるようにする `ORDER BY` 句

  これらの句は、適切なアラーム評価に不可欠です。`GROUP BY` 句はデータを別々の時系列 (インスタンス ID など) に分割し、`ORDER BY` 句はアラーム評価中にこれらの時系列を一貫して優先的に処理します。

マルチ時系列アラームの作成方法の詳細については、「[Metrics Insights クエリに基づいたアラームの作成](multi-time-series-alarm.md)」を参照してください。

## ロググループメトリクスフィルター
<a name="alarm-query-log-metric-filter"></a>

 ロググループメトリクスフィルターに基づいてアラームを作成できます。メトリクスフィルターを使用すると、データが CloudWatch に送信された時に、ログデータの用語やパターンを検索することができます。詳細については、「Amazon CloudWatch Logs ユーザーガイド」の「[フィルターを使用したログイベントからのメトリクスの作成](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html)」を参照してください。

ロググループメトリクスフィルターに基づいたアラーム作成方法の詳細については、「[ログに対するアラーム](Alarm-On-Logs.md)」を参照してください。

## PromQL
<a name="alarm-query-promql"></a>

Prometheus クエリ言語 (PromQL) インスタントクエリを使用して、CloudWatch OTLP エンドポイントを介して取り込まれたメトリクスをモニタリングするアラームを作成できます。

PromQL アラームの仕組みの詳細については、「[PromQL アラーム](alarm-promql.md)」を参照してください。

PromQL アラームの作成方法の詳細については、「[PromQL クエリを使用してアラームを作成する](Create_PromQL_Alarm.md)」を参照してください。

## 外部データソース
<a name="alarm-query-external"></a>

CloudWatch にないデータソースのメトリクスを監視するアラームを作成できます。これら以外のデータソースへの接続を作成する方法の詳細については、「[他のデータソースにあるメトリクスへのクエリ](MultiDataSourceQuerying.md)」を参照してください。

接続されたデータソースに基づいたアラーム作成方法の詳細については、「[接続されたデータソースに基づいてアラームを作成する](Create_MultiSource_Alarm.md)」を参照してください。