

# PromQL アラーム
<a name="alarm-promql"></a>

PromQL アラームは、Prometheus クエリ言語 (PromQL) インスタントクエリを使用してメトリクスをモニタリングします。クエリは CloudWatch OTLP エンドポイントを介して取り込まれたメトリクスを選択し、クエリによって返されたすべての一致する時系列は違反していると見なされます。アラームはクエリを定期的に評価し、違反している各時系列を *[コントリビューター]* として個別に追跡します。

OpenTelemetry を使用したメトリクスの取り込みについては、「[OpenTelemetry](CloudWatch-OpenTelemetry-Sections.md)」を参照してください。

## PromQL アラームの仕組み
<a name="promql-alarm-how-it-works"></a>

PromQL アラームは、`EvaluationInterval` によって定義された定期的なスケジュールで PromQL インスタントクエリを評価します。クエリは、条件を満たす時系列のみを返します。返される各時系列は、一意の属性セットによって識別される *[コントリビューター]* です。

アラームは、期間ベースの状態の移行を使用します:
+ コントリビューターがクエリによって返されると、*違反している*と見なされます。コントリビューターが `PendingPeriod` によって指定された期間違反し続けると、コントリビューターは `ALARM` 状態に移行します。
+ コントリビューターがクエリによって返されるのを停止すると、*復旧中*と見なされます。コントリビューターが `RecoveryPeriod` によって指定された期間不在のままである場合、コントリビューターは `OK` 状態に戻ります。

少なくとも 1 つのコントリビューターが保留期間を超えて違反している場合、アラームは `ALARM` 状態になります。すべてのコントリビューターが回復すると、アラームは `OK` 状態に戻ります。

## PromQL アラーム設定
<a name="promql-alarm-configuration"></a>

PromQL アラームは、次のパラメータで設定されます:
+ **[PendingPeriod]** は、コントリビューターが `ALARM` 状態に移行する前にコントリビューターが継続的に違反している必要がある秒単位の期間です。これは Prometheus アラートルールの `for` 期間に相当します。
+ **[RecoveryPeriod]** は、コントリビューターが `OK` 状態に戻る前にコントリビューターが違反を停止している必要がある秒単位の期間です。これは Prometheus アラートルールの `keep_firing_for` 期間に相当します。
+ **[EvaluationInterval]** は、アラームが PromQL クエリを評価する頻度を秒単位で表したものです。

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