第5章 AlertingRule [monitoring.openshift.io/v1]
- 説明
- AlertingRule は、アラートルールを含むユーザー定義の Prometheus ルールグループのセットを表します。このリソースは、OpenShift のプラットフォームモニタリングスタック (openshift-monitoring namespace にデプロイされた Prometheus インスタンス) によって記録されたメトリクスに基づいてクラスター管理者がアラートを作成するための、サポートされている方法です。これを使用して、CPU 使用率などのマシンレベルのメトリクスを提供する node_exporter や、Kubernetes の使用率に関するメトリクスを提供する kube-state-metrics などのコンポーネントからのメトリクスに基づいて、OpenShift に同梱されていないカスタムアラートルールを作成できます。API は、prometheus-operator のアップストリームの PrometheusRule タイプとほぼ互換性があります。主な違いは、ここでは記録ルールは許可されておらず、アラートルールのみが許可されていることです。作成された AlertingRule リソースごとに、対応する PrometheusRule が openshift-monitoring namespace に作成されます。OpenShift では、アップストリーム API を直接変更せずに、OpenShift 固有のデフォルト設定と検証をより適切に実行できるようにするために、管理者はアップストリームタイプではなく 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
- 必須
-
グループ
-
プロパティー | タイプ | Description |
---|---|---|
|
| groups はグループ化されたアラートルールのリストです。ルールグループは、Prometheus がルール処理を並列化する際の単位です。単一グループ内のすべてのルールは、設定された評価間隔を共有します。グループ内のすべてのルールは、この間隔でまとめて順番に処理され、すべてのルールが処理されます。一般的には、関連するアラートルールを 1 つの AlertingRule リソースにグループ化し、そのリソース内で密接に関連するアラート、または単に同じ間隔のアラートを個別のグループにまとめます。1 つのルールグループのみで AlertingRule リソースを作成することもできます。ただし、グループが非常に大きい場合や、評価するクエリー式が非常に複雑な場合は、Prometheus のパフォーマンスに影響する可能性があることに注意してください。別の一般的なユースケースとして、非常に複雑なルールを複数のグループに分散し、並行処理を可能にする場合もあります。 |
|
| RuleGroup は、順番に評価されるアラートルールのリストです。 |
5.1.2. .spec.groups
- 説明
- groups はグループ化されたアラートルールのリストです。ルールグループは、Prometheus がルール処理を並列化する際の単位です。単一グループ内のすべてのルールは、設定された評価間隔を共有します。グループ内のすべてのルールは、この間隔でまとめて順番に処理され、すべてのルールが処理されます。一般的には、関連するアラートルールを 1 つの AlertingRule リソースにグループ化し、そのリソース内で密接に関連するアラート、または単に同じ間隔のアラートを個別のグループにまとめます。1 つのルールグループのみで AlertingRule リソースを作成することもできます。ただし、グループが非常に大きい場合や、評価するクエリー式が非常に複雑な場合は、Prometheus のパフォーマンスに影響する可能性があることに注意してください。別の一般的なユースケースとして、非常に複雑なルールを複数のグループに分散し、並行処理を可能にする場合もあります。
- タイプ
-
array
5.1.3. .spec.groups[]
- 説明
- RuleGroup は、順番に評価されるアラートルールのリストです。
- タイプ
-
object
- 必須
-
name
-
rules
-
プロパティー | タイプ | Description |
---|---|---|
|
| interval は、グループ内のルールが評価される頻度です。指定されていない場合は、Prometheus で設定された global.evaluation_interval がデフォルトとなり、そのデフォルトは 30 秒です。この値がクラスターのデフォルトから変更されているかどうかを確認するには、プラットフォームの Prometheus 設定を調べます。そのリソースの関連フィールド spec.evaluationInterval です。 |
|
| name はグループの名前です。 |
|
| rules は、順番に評価されるアラートルールのリストです。Prometheus はルールグループを並列に処理することもありますが、単一グループ内のルールは常に順番に処理され、すべてのルールが処理されます。 |
|
| ルールはアラートルールを表します。Prometheus ドキュメントを参照してください: - https://www.prometheus.io/docs/prometheus/latest/configuration/alerting_rules |
5.1.4. .spec.groups[].rules
- 説明
- rules は、順番に評価されるアラートルールのリストです。Prometheus はルールグループを並列に処理することもありますが、単一グループ内のルールは常に順番に処理され、すべてのルールが処理されます。
- タイプ
-
array
5.1.5. .spec.groups[].rules[]
- 説明
- ルールはアラートルールを表します。Prometheus ドキュメントを参照してください: - https://www.prometheus.io/docs/prometheus/latest/configuration/alerting_rules
- タイプ
-
object
- 必須
-
alert
-
expr
-
プロパティー | タイプ | Description |
---|---|---|
|
| alert はアラートの名前です。有効なラベル値である必要があります。つまり、任意の Unicode 文字を含めることができます。 |
|
| 各アラートに追加するアノテーション。アラートの説明やランブックのリンクなど、クエリーを実行しない長い追加情報を保存するために使用できる値です。 |
|
| expr は評価する PromQL 式です。評価サイクルごとに、これが現在の時刻で評価され、結果として生じるすべての時系列は保留中になるか、アラートが発生します。ほとんどの場合、これは PromQL 式を表す文字列です (例: mapi_current_pending_csr > mapi_max_pending_csr)。まれに、常に発生しているアラートを作成することが目的の場合は、単純な整数 (たとえば "1") になることがあります。これは、アラートパイプラインが機能していることを確認するために、常に発生する "Watchdog" アラートの作成に使用されることがあります。 |
|
| for は、最初に結果が返された後にアラートが発動したと見なされるまでの時間間隔です。発動してからの時間が不十分なアラートは保留中とみなされます。 |
|
|
各アラートに追加または上書きするラベル。アラートの PromQL 式の結果は、アラートの既存のラベルセットになります。式を評価した後、ここで指定されたラベルがそのセット内のラベルと同じ名前である場合、ここでのラベルが優先され、以前の値を上書きします。これらは通常、クエリーの実行に役立つ短い識別値である必要があります。一般的な例としては、アラートの重大度が挙げられます。その場合、 |
5.1.6. .status
- 説明
- status は、この AlertOverrides オブジェクトの現在の状態を表します。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| observedGeneration は、処理した最後の世代変更です |
|
| prometheusRule は、この AlertingRule に対して生成された PrometheusRule です。各 AlertingRule インスタンスにより、同じ namespace (常に openshift-monitoring namespace) に PrometheusRule オブジェクトが生成されます。 |
5.1.7. .status.prometheusRule
- 説明
- prometheusRule は、この AlertingRule に対して生成された PrometheusRule です。各 AlertingRule インスタンスにより、同じ namespace (常に openshift-monitoring namespace) に PrometheusRule オブジェクトが生成されます。
- タイプ
-
object
- 必須
-
name
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| 参照される PrometheusRule の名前。 |