모니터링 쿼리 언어(MQL) 기반 조건이 포함된 알림 정책을 사용하면 여러 가능한 사용 사례에 맞게 알림 환경을 구성할 수 있습니다. 특정 구성은 MQL 쿼리를 사용할 경우에만 가능합니다.
이 문서에서는 프로덕션 환경에서 MQL 기반 조건을 사용하여 알림 정책을 배포하기 위한 몇 가지 사용 사례 및 샘플 쿼리를 설명합니다.
동적 기준점 알림
MQL 쿼리를 사용하면 주중 요일과 같이 일정 기간에 따라 달라지는 기준점을 기반으로 알림을 트리거하는 알림 정책을 구성할 수 있습니다. MQL 쿼리가 없는 알림 정책 조건에서는 이 구성이 지원되지 않습니다.
예를 들어 Compute Engine 인스턴스의 CPU 사용률이 95%를 초과할 경우 알림을 전송하는 MQL 쿼리가 있다고 가정해 보세요.
fetch gce_instance :: compute.googleapis.com/instance/cpu/utilization | align | every 30s | condition utilization > 95'%'
하지만 주말에는 지원팀의 응답 시간 지연을 고려해서 사용률 기준점을 85% 정도와 같이 낮게 설정해야 할 수 있습니다. 이 경우 알림 기준점을 포함하는 값 열을 사용해서 쿼리를 구성할 수 있습니다.
fetch gce_instance :: compute.googleapis.com/instance/cpu/utilization | align | every 30s | value add [day_of_week: end().timestamp_to_string('%w').string_to_int64] | value [utilization, is_weekend: day_of_week = 0 || day_of_week = 6] | value [utilization, max_allowed_utilization: if(is_weekend, 85'%', 95'%')] | condition utilization > scale(max_allowed_utilization)
value 작업은 다음을 수행합니다.
value add [day_of_week: end().timestamp_to_string('%w').string_to_int64]
는 해당 값이 0~6 사이의 숫자인 값 열을 추가합니다.0
은 일요일,6
은 토요일입니다.value [utilization, is_weekend: day_of_week = 0 || day_of_week = 6]
은 요일 숫자를 해당 데이터 포인트의 위치가 주말 또는 주중인지를 나타내는 불리언으로 바꿉니다.value [utilization, max_allowed_utilization: if(is_weekend, 85'%', 95'%')]
는 이 불리언을is_weekend
값에 따라 바뀌는 기준점으로 바꿉니다.
condition utilization > scale(max_allowed_utilization)
조건은 두 값 열을 비교합니다.
동적 기준에 따라 이슈 심각도 수준을 구성하는 MQL 기반 조건을 사용하는 알림 정책 예시는 MQL을 사용하여 동적 심각도 수준 만들기를 참조하세요.
변화율에 따른 기준점 알림
측정항목의 변화율에 따라 기준점을 평가하도록 알림 정책 MQL 쿼리를 구성할 수 있습니다. 예를 들어 API 요청에서 resource.method
인스턴스별로 5xx
오류 비율을 평가할 수 있습니다. 여기에서 비율은 초당 요청 수와 동일합니다. 비율이 초당 5회 오류 응답보다 크면 Cloud Monitoring이 알림을 보냅니다.
fetch consumed_api | metric 'serviceruntime.googleapis.com/api/request_count' | filter (metric.response_code_class == '5xx') | align rate(10m) | every 30s | group_by [resource.method], [value_request_count_mean: mean(value.request_count)] | condition val() > 0.05'1/s'
MQL을 사용하지 않고 변화율 알림 정책을 만들 수 있습니다.
비율 기반 기준점 알림
알림 정책은 MQL 쿼리를 사용해서 2개의 측정항목을 합치고 값 열을 분할하여 파생되는 비율을 평가할 수 있습니다.
예를 들어 각 Compute Engine 인스턴스에 대해 write
바이트와 비교되는 read
바이트 비율을 쿼리할 수 있습니다. 비율이 3/5
또는 60%보다 크면 Cloud Monitoring이 알림을 보냅니다.
{ fetch gce_instance :: compute.googleapis.com/instance/disk/read_bytes_count; fetch gce_instance :: compute.googleapis.com/instance/disk/write_bytes_count } | every 30s | join | value val(0) / val(1) | condition val() > 0.6
또한 집계된 값의 비율을 쿼리할 수 있습니다. 예를 들어 Compute Engine 인스턴스에서 코어당 평균 CPU 사용 시간을 계산할 수 있습니다. 비율이 3/5
또는 60%보다 크면 Cloud Monitoring이 알림을 보냅니다.
{ fetch gce_instance :: compute.googleapis.com/instance/cpu/usage_time | group_by [], .sum; fetch gce_instance :: compute.googleapis.com/instance/cpu/reserved_cores | group_by [], .sum } | every 30s | ratio | condition val() > 0.6
MQL을 사용하지 않고 비율 기반 알림 정책을 만들 수 있습니다.