第5章 AlertingRule [monitoring.openshift.io/v1]
- 説明
- AlertingRule は、アラートルールが含まれるユーザー定義の Prometheus ルールグループのセットを表します。このリソースは、クラスター管理者が OpenShift のプラットフォームモニタリングスタックによって記録されたメトリクス(つまり、openshift-monitoring namespace にデプロイされた Prometheus インスタンス)に基づいてアラートを作成するためにサポートされる方法です。これを使用して、CPU 使用率などのマシンレベルのメトリクスを提供する node_exporter などのコンポーネントからのメトリクスに基づいて、OpenShift に同梱されていないカスタムアラートルールを作成したり、Kubernetes の使用状況にメトリックを提供する kube-state-metrics を作成したりできます。API は、主に prometheus-operator のアップストリーム PrometheusRule タイプと互換性があります。主な違いは、ここで記録ルールが許可されない点です。アラートルールはここで許可されません。作成される AlertingRule リソースごとに、対応する PrometheusRule が openshift-monitoring namespace に作成されます。OpenShift では、管理者はアップストリームタイプではなく AlertingRule リソースを使用する必要があります。これにより、アップストリーム API を直接変更せずに OpenShift 固有のデフォルトおよび検証をより高めるために、管理者は upstream タイプではなく AlertingRule リソースを使用する必要があります。PrometheusRule リソースのアップストリーム API ドキュメントは、https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md 互換性レベル 1: メジャーリリース内で最低 12 か月または 3 つのマイナーリリース(いずれか長い方)の間安定しています。
- タイプ
-
object
- 必須
-
spec
-
5.1. 仕様
プロパティー | タイプ | 説明 |
---|---|---|
|
| APIVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できることがあります。これを更新することはできません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
| 標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
|
| spec は、この AlertingRule オブジェクトの望ましい状態を記述します。 |
|
| Status は、この AlertOverrides オブジェクトの現在の状態を記述します。 |
5.1.1. .spec
- 説明
- spec は、この AlertingRule オブジェクトの望ましい状態を記述します。
- タイプ
-
object
- 必須
-
グループ
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| グループは、グループ化されたアラートルールのリストです。ルールグループは、Prometheus がルール処理を並列化するユニットです。1 つのグループ内のすべてのルールは、設定された評価間隔を共有します。グループ内のすべてのルールは、この間隔、順次、およびすべてのルールが処理されます。関連するアラートルールを単一の AlertingRule リソースや、そのリソース内で、密接に関連するアラート、または単に同じ間隔でのアラートを個別のグループにグループ化することが一般的です。また、単一のルールグループでのみ AlertingRule リソースを作成することもできますが、グループが非常に大きい場合や、評価するクエリー式が非常に複雑な場合には、Prometheus にパフォーマンスが低下する可能性があることに注意してください。並行して処理できるように、非常に複雑なルールを複数のグループ全体に分散することは、一般的なユースケースです。 |
|
| RuleGroup は、順次評価されるアラートルールのリストです。 |
5.1.2. .spec.groups
- 説明
- グループは、グループ化されたアラートルールのリストです。ルールグループは、Prometheus がルール処理を並列化するユニットです。1 つのグループ内のすべてのルールは、設定された評価間隔を共有します。グループ内のすべてのルールは、この間隔、順次、およびすべてのルールが処理されます。関連するアラートルールを単一の AlertingRule リソースや、そのリソース内で、密接に関連するアラート、または単に同じ間隔でのアラートを個別のグループにグループ化することが一般的です。また、単一のルールグループでのみ AlertingRule リソースを作成することもできますが、グループが非常に大きい場合や、評価するクエリー式が非常に複雑な場合には、Prometheus にパフォーマンスが低下する可能性があることに注意してください。並行して処理できるように、非常に複雑なルールを複数のグループ全体に分散することは、一般的なユースケースです。
- タイプ
-
array
5.1.3. .spec.groups[]
- 説明
- RuleGroup は、順次評価されるアラートルールのリストです。
- タイプ
-
object
- 必須
-
name
-
rules
-
プロパティー | タイプ | Description |
---|---|---|
|
| 間隔は、グループ内のルールが評価される頻度です。指定しない場合、デフォルトで Prometheus で設定された global.evaluation_interval に設定されます。デフォルトは 30 秒です。プラットフォーム Prometheus 設定を検査すると、この値がクラスターのデフォルトから変更されているかどうかを確認できます。そのリソースの関連フィールドは spec.evaluationInterval です。 |
|
| name はグループ名です。 |
|
| ルールは、順次評価されるアラートルールのリストです。Prometheus はルールグループを並行して処理できますが、1 つのグループ内のルールは常に順番に処理され、すべてのルールが処理されます。 |
|
| ルールはアラートルールを記述します。Prometheus のドキュメント: https://www.prometheus.io/docs/prometheus/latest/configuration/alerting_rulesを参照してください。 |
5.1.4. .spec.groups[].rules
- 説明
- ルールは、順次評価されるアラートルールのリストです。Prometheus はルールグループを並行して処理できますが、1 つのグループ内のルールは常に順番に処理され、すべてのルールが処理されます。
- タイプ
-
array
5.1.5. .spec.groups[].rules[]
- 説明
- ルールはアラートルールを記述します。Prometheus のドキュメント: https://www.prometheus.io/docs/prometheus/latest/configuration/alerting_rulesを参照してください。
- タイプ
-
object
- 必須
-
alert
-
expr
-
プロパティー | タイプ | Description |
---|---|---|
|
| alert はアラートの名前です。有効なラベル値である必要があります。つまり、Unicode 文字を含めることができます。 |
|
| 各アラートに追加するアノテーション。これらは、アラートの説明や runbook リンクなど、クエリーを実行しない追加情報を保存するために使用できる値です。 |
|
| expr は評価する PromQL 式です。これはすべての評価サイクルが現時点で評価され、結果として生じるすべての時系列が保留または実行されるアラートになります。これはほとんどの場合、PromQL 式を表す文字列です(例:mapi_current_pending_csr > mapi_max_pending_csr)。まれに、これは単純な整数である可能性があります。たとえば、常に実行されるアラートを作成することが意図された場合は、単純な整数になることがあります。これは、アラートパイプラインが機能することを確認するために、常時的なWatchdog アラートを作成するために使用されることがあります。 |
|
| For は、最初に返された結果の後にアラートが実行されるとみなされる期間です。十分に起動されていないアラートは保留中と見なされます。 |
|
|
各アラートについて追加または上書きするラベル。アラートの PromQL 式の結果は、式を評価した後、セットのラベルと同じ名前のラベルに対して、アラートの既存のラベルセットの結果、ここでラベルが優先され、以前の値を上書きします。通常、これらはクエリーに役立つ可能性のある短い識別値である必要があります。一般的な例は、アラート重大度 です。1 つは、 |
5.1.6. .status
- 説明
- Status は、この AlertOverrides オブジェクトの現在の状態を記述します。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| observedGeneration は、処理した最後の世代変更です。 |
|
| PrometheusRule は、この AlertingRule の生成された PrometheusRule です。それぞれの AlertingRule インスタンスにより、生成された PrometheusRule オブジェクトが同じ namespace に作成されます。これは常に openshift-monitoring namespace になります。 |
5.1.7. .status.prometheusRule
- 説明
- PrometheusRule は、この AlertingRule の生成された PrometheusRule です。それぞれの AlertingRule インスタンスにより、生成された PrometheusRule オブジェクトが同じ namespace に作成されます。これは常に openshift-monitoring namespace になります。
- タイプ
-
object
- 必須
-
name
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| 参照される PrometheusRule の名前。 |