5장. AlertingRule [monitoring.openshift.io/v1]
- 설명
AlertingRule은 경고 규칙을 포함하는 사용자 정의 Prometheus 규칙 그룹 세트를 나타냅니다. 이 리소스는 클러스터 관리자가 OpenShift의 플랫폼 모니터링 스택(즉, openshift-monitoring 네임스페이스에 배포된 Prometheus 인스턴스)에서 기록된 메트릭을 기반으로 알림을 생성하는 데 지원되는 방법입니다. 이를 사용하여 CPU 사용량과 같은 머신 수준 메트릭을 제공하는 node_exporter나 Kubernetes 사용량에 대한 메트릭을 제공하는 kube-state-metrics와 같은 구성 요소의 메트릭을 기반으로 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입니다. |
|
| name은 그룹의 이름입니다. |
|
| 규칙은 순차적으로 평가된 알림 규칙의 목록입니다. 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은 평가할 PromQL 표현식입니다. 매 평가 주기마다 현재 시간을 기준으로 평가되고, 그 결과로 발생하는 모든 시계열은 보류 알림 또는 실행 알림이 됩니다. 이는 대개 PromQL 표현식을 나타내는 문자열입니다(예: mapi_current_pending_csr > mapi_max_pending_csr). 드물지만 간단한 정수(예: 항상 실행되는 알림을 만드는 것이 의도인 경우 간단한 "1")가 될 수도 있습니다. 이는 경고 파이프라인이 기능하는지 확인하기 위해 항상 실행되는 "감시자" 경고를 만드는 데 사용되기도 합니다. |
|
| 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의 이름입니다. |