5장. AlertingRule [monitoring.openshift.io/v1]
- 설명
- AlertingRule은 경고 규칙을 포함하는 사용자 정의 Prometheus 규칙 그룹 세트를 나타냅니다. 이 리소스는 클러스터 관리자가 OpenShift의 플랫폼 모니터링 스택(예: openshift-monitoring 네임스페이스에 배포된 Prometheus 인스턴스)에서 기록한 메트릭을 기반으로 경고를 생성하는 데 지원되는 방법입니다. 이를 사용하여 Kubernetes 사용량에 대한 지표를 제공하는 machine-level 메트릭을 제공하는 node_exporter와 같은 구성 요소의 메트릭을 기반으로 OpenShift와 함께 제공되지 않는 사용자 정의 경고 규칙을 생성할 수 있습니다. API는 prometheus-operator의 업스트림 PrometheusRule 유형과 대부분 호환됩니다. 여기에서는 기록 규칙이 허용되지 않는다는 주요 차이점은 바이너리 옵션 경고 규칙을 사용할 수 없다는 것입니다. 생성된 각 AlertingRule 리소스에 대해 해당 PrometheusRule가 openshift-monitoring 네임스페이스에 생성됩니다. 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
- 필수 항목
-
groups
-
속성 | 유형 | 설명 |
---|---|---|
|
| 그룹은 그룹화된 경고 규칙 목록입니다. 규칙 그룹은 Prometheus가 규칙 처리를 병렬화하는 단위입니다. 단일 그룹의 모든 규칙은 구성된 평가 간격을 공유합니다. 그룹의 모든 규칙은 이 간격에 따라 순차적으로 처리되며 모든 규칙이 처리됩니다. 관련 경고 규칙을 단일 AlertingRule 리소스로 그룹화하고 해당 리소스 내에서 밀접하게 관련된 경고 또는 동일한 간격으로 경고를 개별 그룹으로 그룹화하는 것이 일반적입니다. 또한 단일 규칙 그룹만으로 AlertingRule 리소스를 자유롭게 생성할 수 있지만 그룹이 매우 크거나 매우 복잡한 쿼리 표현식이 있는 경우 Prometheus에 성능에 영향을 미칠 수 있습니다. 병렬로 처리할 수 있도록 여러 그룹에 매우 복잡한 규칙을 분산하는 것도 일반적인 사용 사례입니다. |
|
| RuleGroup은 순차적으로 평가된 경고 규칙 목록입니다. |
5.1.2. .spec.groups
- 설명
- 그룹은 그룹화된 경고 규칙 목록입니다. 규칙 그룹은 Prometheus가 규칙 처리를 병렬화하는 단위입니다. 단일 그룹의 모든 규칙은 구성된 평가 간격을 공유합니다. 그룹의 모든 규칙은 이 간격에 따라 순차적으로 처리되며 모든 규칙이 처리됩니다. 관련 경고 규칙을 단일 AlertingRule 리소스로 그룹화하고 해당 리소스 내에서 밀접하게 관련된 경고 또는 동일한 간격으로 경고를 개별 그룹으로 그룹화하는 것이 일반적입니다. 또한 단일 규칙 그룹만으로 AlertingRule 리소스를 자유롭게 생성할 수 있지만 그룹이 매우 크거나 매우 복잡한 쿼리 표현식이 있는 경우 Prometheus에 성능에 영향을 미칠 수 있습니다. 병렬로 처리할 수 있도록 여러 그룹에 매우 복잡한 규칙을 분산하는 것도 일반적인 사용 사례입니다.
- 유형
-
array
5.1.3. .spec.groups[]
- 설명
- RuleGroup은 순차적으로 평가된 경고 규칙 목록입니다.
- 유형
-
object
- 필수 항목
-
name
-
규칙
-
속성 | 유형 | 설명 |
---|---|---|
|
| 간격은 그룹의 규칙을 평가하는 빈도입니다. 지정하지 않으면 기본값은 Prometheus에 구성된 global.evaluation_interval이며 기본값은 30초입니다. 플랫폼 Prometheus 구성을 검사하여 클러스터의 기본값에서 이 값이 수정되었는지 확인할 수 있습니다. 해당 리소스의 관련 필드는 spec.evaluationInterval입니다. |
|
| 이름은 그룹의 이름입니다. |
|
| 규칙은 순차적으로 평가된 경고 규칙 목록입니다. Prometheus는 규칙 그룹을 병렬로 처리할 수 있지만 단일 그룹 내의 규칙은 항상 순차적으로 처리되며 모든 규칙이 처리됩니다. |
|
| 규칙은 경고 규칙을 설명합니다. Prometheus 문서: - https://www.prometheus.io/docs/prometheus/latest/configuration/alerting_rules |
5.1.4. .spec.groups[].rules
- 설명
- 규칙은 순차적으로 평가된 경고 규칙 목록입니다. Prometheus는 규칙 그룹을 병렬로 처리할 수 있지만 단일 그룹 내의 규칙은 항상 순차적으로 처리되며 모든 규칙이 처리됩니다.
- 유형
-
array
5.1.5. .spec.groups[].rules[]
- 설명
- 규칙은 경고 규칙을 설명합니다. Prometheus 문서: - https://www.prometheus.io/docs/prometheus/latest/configuration/alerting_rules
- 유형
-
object
- 필수 항목
-
alert
-
expr
-
속성 | 유형 | 설명 |
---|---|---|
|
| 경고는 경고의 이름입니다. 유효한 레이블 값이어야 합니다. 즉, 유니코드 문자를 포함할 수 있습니다. |
|
| 각 경고에 추가할 주석입니다. 이러한 값은 경고 설명 또는 runbook 링크와 같이 쿼리하지 않는 추가 정보를 저장하는 데 사용할 수 있는 값입니다. |
|
| expr는 평가할 PromQL 표현식입니다. 모든 평가 주기는 현재 평가되며 생성되는 모든 시계열은 보류 중이거나 경고가 실행됩니다. 이는 PromQL 표현식을 나타내는 문자열입니다(예: mapi_current_pending_csr > mapi_max_pending_csr) 드문 경우 이는 간단한 정수일 수 있습니다(예: 항상 실행되는 경고를 생성하려는 경우 간단한 "1"). 경고 파이프라인이 작동하는지 확인하기 위해 항상 "Watchdog" 경고를 만드는 데 사용됩니다. |
|
| for는 첫 번째 반환 결과 후에 경고가 실행되는 것으로 간주되는 기간입니다. 오랜 시간 동안 실행되지 않은 경고는 보류 중으로 간주됩니다. |
|
|
각 경고에 대해 추가하거나 덮어쓸 레이블입니다. 경고에 대한 PromQL 표현식의 결과는 표현식을 평가한 후 해당 세트의 라벨과 동일한 이름으로 지정되어 있는 모든 레이블에 대해 경고에 대한 기존 라벨 세트가 생성됩니다. 여기에 레이블은 이전 값을 우선하고 덮어씁니다. 일반적으로 쿼리에 유용할 수 있는 짧은 식별 값이어야 합니다. 일반적인 예는 |
5.1.6. .status
- 설명
- status는 이 AlertOverrides 오브젝트의 현재 상태를 설명합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| observedGeneration은 귀하가 다루는 마지막 세대 변경 사항입니다. |
|
| PrometheusRule는 이 AlertingRule에 대해 생성된 PrometheusRule입니다. 각 AlertingRule 인스턴스는 항상 openshift-monitoring 네임스페이스인 동일한 네임스페이스에 생성된 PrometheusRule 오브젝트가 생성됩니다. |
5.1.7. .status.prometheusRule
- 설명
- PrometheusRule는 이 AlertingRule에 대해 생성된 PrometheusRule입니다. 각 AlertingRule 인스턴스는 항상 openshift-monitoring 네임스페이스인 동일한 네임스페이스에 생성된 PrometheusRule 오브젝트가 생성됩니다.
- 유형
-
object
- 필수 항목
-
name
-
속성 | 유형 | 설명 |
---|---|---|
|
| 참조된 PrometheusRule의 이름입니다. |