이 문서에서는 사용자 정의 라벨을 지정하여 이슈를 구성하고 우선순위를 지정하는 방법을 설명합니다. 이러한 라벨은 알림 정책에서 구성되며 알림 정책과 이슈에 나열됩니다. 구성에 따라 라벨이 특정 알림에도 나열됩니다.
라벨 정보
키-값 쌍인 라벨은 정보를 시계열, 알림 정책, 이슈 또는 알림에 연결하는 데 사용됩니다. 예를 들어 시계열의 라벨은 데이터가 수집된 특정 가상 머신(VM) 인스턴스를 식별할 수 있습니다. 라벨은 사용자 정의 라벨이거나 사전 정의된 라벨입니다.
사용자 정의 라벨
사용자 정의 라벨에는 개발자가 지정한 정보가 포함됩니다. 이러한 라벨에는 정적 또는 동적 값이 있을 수 있습니다.
정적 사용자 정의 라벨에는 변경할 수 없는 값이 있습니다. Google Cloud 콘솔 또는 Cloud Monitoring API를 사용하여 알림 정책을 구성할 때 정적 사용자 정의 라벨을 만들 수 있습니다. 자세한 내용은 다음 문서를 참조하세요.
동적 사용자 정의 라벨에는 시계열 데이터 값에 따라 변경할 수 있는 값이 있습니다. MQL로 알림 정책의 조건을 구성할 때 동적 사용자 정의 라벨을 만들 수 있습니다. 예시를 보려면 예시: 동적 값이 있는 사용자 정의 라벨 추가를 참조하세요.
라벨 키는 소문자로 시작해야 합니다. 라벨 키와 라벨 값에 소문자, 숫자, 밑줄, 대시만 사용할 수 있습니다.
사전 정의된 라벨
사전 정의된 라벨은 리소스 설명자에 포함됩니다. 시계열 데이터를 쓸 때 이러한 라벨을 채워야 합니다. 이러한 라벨에는 수집되는 측정항목 또는 측정항목이 기록되는 대상 리소스에 대한 정보가 표시됩니다. 예를 들어 시계열의 라벨로 가상 머신(VM), 영역, Google Cloud 프로젝트, 기기 유형이 식별될 수 있습니다. Monitoring에서 해당 시계열을 기반으로 이슈를 만들면 이슈는 해당 라벨을 상속합니다.
라벨을 보는 방법
이슈의 세부정보 페이지, 알림 정책의 세부정보 페이지, 일부 알림에서 알림 정책 또는 이슈의 라벨을 볼 수 있습니다.
- 알림 정책: 정적 사용자 정의 라벨은 사용자 라벨 섹션에 나열됩니다. 동적 사용자 정의 라벨과 사전 정의된 라벨은 표시되지 않습니다.
- 이슈: 정적 사용자 정의 라벨은 정책 라벨 섹션에 나열되고 동적 사용자 정의 라벨은 측정항목 라벨 섹션에 나열됩니다. 사전 정의된 라벨은 모니터링 리소스 라벨 및 측정항목 라벨 섹션에 나열됩니다.
알림: 사전 정의된 라벨과 사용자 정의 라벨은 다음 알림 유형에 나열됩니다.
- 이메일
- Google Chat
- PagerDuty
- Pub/Sub
- 웹훅
예시: 동적 값이 있는 사용자 정의 라벨 추가
값이 시계열 데이터에 따라 동적으로 변경되도록 MQL을 사용하여 라벨을 구성할 수 있습니다. 예를 들어 모니터링된 CPU 사용량 측정항목 값에 따라 값이 변경되는 criticality
라벨을 이슈에 추가하려고 합니다.
fetch gce_instance
| metric 'compute.googleapis.com/instance/cpu/utilization'
| group_by sliding(5m), [value_utilization_mean: mean(value.utilization)]
| map
add[
criticality:
if(val() >= 90 '%', 'CRITICAL',
if(val() >= 80 '%', 'WARNING',
if(val() >= 70 '%', 'INFO', 'GOOD')))
]
| condition val() >= 70 '%'
다음 그림에서는 MQL 쿼리를 사용하는 알림 정책에서 모니터링하는 시계열 데이터를 처리하는 방법을 보여줍니다.
정책 핸들러가 CPU 사용률 데이터를 처리하고 조건이 충족되는 순간을 나타내는 시계열을 출력합니다. 이전 예시에서는 CPU 사용률이 70% 이상일 때 조건이 충족되었습니다. 각 입력 시계열에 대해 정책 핸들러가 4개의 시계열 중 하나를 생성할 수 있습니다.
출력 시계열 이름 | 조건을 충족함 | 설명 |
---|---|---|
'GOOD' | 아니요 | 이 시계열은 라벨이 입력 시계열과 동일합니다. 심각도 수준은 없습니다. |
'CRITICAL' | 예 | CPU 사용률이 90% 이상입니다. 출력 시계열의 라벨이 'GOOD' 시계열과 같고 여기에 값이 'CRITICAL'인 심각도 수준이 추가됩니다. |
'WARNING' | 예 | CPU 사용률이 80% 이상 90% 미만입니다. 출력 시계열의 라벨이 'GOOD' 시계열과 동일하고 여기에 값이 'WARNING'인 심각도 수준이 추가됩니다. |
'INFO' | 예 | CPU 사용률이 70% 이상 80% 미만입니다. 출력 시계열의 라벨이 'GOOD' 시계열과 같고 여기에 값이 'INFO'인 심각도 수준이 추가됩니다. |
정책 핸들러에서 생성된 시계열 데이터는 이슈 관리자에 입력되고, 이에 따라 이슈를 만들고 닫는 순간이 결정됩니다.
이슈를 닫는 순간을 결정하기 위해 이슈 관리자는 duration
, evaluationMissingData
, autoClose
필드 값을 사용합니다.
권장사항
값이 동적으로 설정되는 라벨을 만들 때 항상 이슈가 하나 이상 열려 있도록 하려면 다음을 수행합니다.
MetricThreshold
객체에서 다음 필드에 대해 기본값을 재정의합니다.duration
필드: 0이 아닌 값으로 설정합니다.evaluationMissingData
필드: 데이터 수신이 중지될 때 이슈가 닫히도록 설정합니다. Cloud Monitoring API를 사용할 때 이 필드를EVALUATION_MISSING_DATA_INACTIVE
로 설정합니다. Google Cloud Console을 사용할 때는 이 필드를 '정책 조건을 위반하지 않는 값으로 취급되는 누락된 데이터 포인트'로 설정합니다.
AlertStrategy
객체에서autoClose
필드를 최소 30분 값으로 설정합니다. Cloud Monitoring API를 사용할 때 이 필드를30m
로 설정합니다.
자세한 내용은 부분적인 측정항목 데이터를 참조하세요.
이슈 흐름
알림 정책을 만들 때 CPU 사용률 측정값이 70% 미만이라고 가정해보세요. 다음 시퀀스에서는 이슈가 열리고 닫히는 방법을 보여줍니다.
CPU 사용률 측정값이 70%보다 작기 때문에 정책 핸들러가 'GOOD' 시계열을 생성하고 이슈가 열리지 않습니다.
그런 후 CPU 사용률이 93%로 증가한다고 가정해보세요. 정책 핸들러가 'GOOD' 시계열 데이터 생성을 중지하고 'CRITICAL' 시계열에 대해 데이터 생성을 시작합니다.
이슈 관리자에는 조건을 충족하는 새로운 'CRITICAL' 시계열이 표시된 후 이슈가 열립니다. 알림에는
CRITICAL
값의 심각도 수준이 포함됩니다.CPU 사용률이 75%로 낮아졌다고 가정해보세요. 정책 핸들러가 'CRITICAL' 시계열 생성을 중지하고 'INFO' 시계열 생성을 시작합니다.
이슈 관리자에 조건을 충족하는 새로운 'INFO' 시계열이 표시된 후 이슈가 열립니다. 알림에는
INFO
값의 심각도 수준이 포함됩니다.이슈 관리자에는 'CRITICAL' 시계열에 대한 데이터가 수신되지 않고 해당 시계열에 대해 이슈가 열려 있는 것으로 표시됩니다. 데이터 수신이 중지될 때 이슈를 닫도록 정책이 구성되었기 때문에 이슈 관리자가 'CRITICAL' 시계열과 연결된 이슈를 닫습니다. 따라서 심각도 수준에
INFO
값이 있는 이슈만 열린 상태로 유지됩니다.마지막으로 CPU 사용률이 45%로 낮아졌다고 가정해보세요. 이 값은 모든 임곗값보다도 작습니다. 따라서 정책 핸들러가 'INFO' 시계열 생성을 중지하고 'GOOD' 시계열 생성을 시작합니다.
이슈 관리자에는 'INFO' 시계열에 대한 데이터가 수신되지 않고 해당 시계열에 대해 이슈가 열려 있는 것으로 표시됩니다. 정책에 권장 설정이 사용되고 있으므로 이슈가 닫힙니다.
evaluationMissingData
필드에 권장 값을 사용하지 않으면 데이터 수신이 중지될 때 열려 있는 이슈가 즉시 닫히지 않습니다.
그 결과 동일한 입력 시계열에 대해 열려 있는 이슈가 여러 개 표시될 수 있습니다. 자세한 내용은 부분적인 측정항목 데이터를 참조하세요.