MQL을 사용한 알림 정책

Monitoring Query Language(MQL) 쿼리가 포함된 Monitoring 알림 정책을 만들 수 있습니다. 알림 정책 조건의 MQL 쿼리는 MQL 알림 작업이 포함되는 것을 제외하고 다른 MQL 쿼리와 비슷합니다. 조건에 MQL을 사용하는 경우 이 조건이 정책에서 유일한 조건이어야 합니다.

이 페이지에서는 MQL 알림 작업을 소개하고 이를 사용한 알림 정책을 만드는 방법을 설명합니다. Monitoring 알림 정책에 대한 일반적인 정보는 측정항목 기반 알림 정책 동작을 참조하세요.

시작하기

모든 MQL 쿼리는 다음 구성요소로 시작됩니다.

  • fetch 작업 - Cloud Monitoring에서 시계열을 검색합니다.
  • 가져올 시계열을 식별하는 인수 - 모니터링 리소스와 측정항목 유형으로 구성

예를 들어 다음 쿼리는 해당 인스턴스의 CPU 사용률을 기록하는 측정항목 유형 compute.googleapis.com/instance/cpu/utilization에 대해 Compute Engine 인스턴스가 작성한 시계열을 검색합니다.

fetch gce_instance::compute.googleapis.com/instance/cpu/utilization

fetch 명령어의 인수는 모니터링 리소스 유형 gce_instance, 콜론 문자 쌍 ::, 측정항목 유형 compute.googleapis.com/instance/cpu/utilization로 구성됩니다.

MQL 기반 조건이 있는 알림 정책에서 쿼리를 사용하려면 Cloud Monitoring이 알림을 트리거하는 매개변수를 정의하는 작업으로 쿼리가 종료되어야 합니다. 이 작업은 측정항목 기준점 알림 정책을 빌드하는지 또는 측정항목 부재 알림 정책을 빌드하는지에 따라 달라집니다.

측정항목 기준점 알림 정책의 MQL 쿼리

측정항목 기준점 MQL 쿼리에는 쿼리 실행 시간 내의 각 지점에서 부울 표현식을 평가하는 condition 작업이 필요합니다. 표현식이 기간의 모든 지점에서 true로 평가되면 Cloud Monitoring이 알림을 트리거합니다.

예를 들어 다음 쿼리는 Compute Engine VM 인스턴스를 평가하고 지난 24시간 동안 디스크에 5GB 이상을 기록한 인스턴스가 있으면 알림을 트리거합니다.

fetch gce_instance :: compute.googleapis.com/instance/disk/write_bytes_count
| group_by 24h, .sum
| every 30s
| condition val() > 5'GBy'

복잡한 조건을 사용하여 특정 데이터 범위를 평가할 수 있습니다. 예를 들어 다음 조건은 지난 24시간 동안 VM 인스턴스가 5기가바이트를 초과하고 6GB 미만의 데이터 또는 8GB를 초과하는 데이터를 작성한 경우 알림을 트리거합니다. :

fetch gce_instance :: compute.googleapis.com/instance/disk/write_bytes_count
| group_by 24h, .sum
| every 30s
| condition (val() > 5'GBy' && val() < 6'GBy') || val() > 8'GBy'

다음 예시에서는 filter, 슬라이딩 group_by 연산, 복잡한 조건을 사용하여 정렬된 입력 테이블의 각 데이터 포인트를 평가하고 사용률 값이 기준점 15%를 초과하는지 확인합니다.

fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
| filter zone =~ 'us-central.*'
| group_by sliding(5m), mean(val())
| every 30s
| condition val() > .15 '10^2.%'

이전 쿼리에서 condition 연산자로 생성된 테이블에는 기준점 평가 결과를 기록하는 부울 열과 입력 테이블의 utilization 값 열 사본이 포함된 두 번째 열이 있습니다. 기본 group_by 윈도우 설정이 슬라이딩이므로 group_by 표현식은 group_by 5m, mean(val())과 동일합니다.

CPU 사용률 값은 분수 사용률로 저장되며 값 범위는 0.0~1.0입니다. 측정항목 설명자는 이러한 값의 단위를 10^2.%로 지정하며 차트에 백분율로 표시됩니다. 기준점 단위는 호환 가능해야 하므로 기준점은 .15 '10^2.%로 표현됩니다.

측정항목 부재 알림 정책의 MQL 쿼리

측정항목이 없는 MQL 쿼리는 데이터가 누락되어야 하는 기간이 있는 absent_for 작업을 사용합니다. 예를 들어 다음 쿼리 테스트를 통해 미국 중부 지역에서 데이터가 8시간 동안 누락되었는지 여부를 확인합니다.

fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
| filter zone =~ 'us-central.*'
| every 30s
| absent_for 8h

absent_for 연산은 기간(duration) 인수만 취하는데, 이는 조건 충족을 위해 데이터가 누락되어야 하는 기간을 나타냅니다.

지난 24시간 동안은 데이터가 나타나지만 해당 기간 내에, 이 예시의 경우 최근 8시간 동안 데이터가 없는 경우 데이터는 부재하는 것으로 간주합니다.

absent_for 쿼리는 기본 정렬을 사용하거나 absent_for 연산 뒤에 every 연산을 사용하여 정렬된 값이 있는 출력 테이블을 만듭니다.

출력 테이블에는 두 개의 열이 있습니다.

  • 첫 번째는 데이터 부재의 부울 결과를 기록하는 active 열입니다. true 값은 지난 24시간 내에 입력 포인트가 있었으며 기간(duration) 내에는 입력이 없음을 의미합니다.

  • 두 번째는 signal 열입니다. 입력 테이블에 값 열이 있는 경우 signal 열에는 가장 최근 입력 포인트의 첫 번째 값 열의 값이 포함됩니다. 입력 테이블에 값 열이 없는 경우 signal 열에는 마지막 입력 포인트가 기록된 이후의 분 단위 수가 포함됩니다. 다음 예시에서 보는 것처럼 이 사례를 시행할 수 있습니다.

    fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
    | filter zone =~ 'us-central.*'
    | value []
    | every 30s
    | absent_for 8h
    

    앞의 예시에서 value [] 연산은 입력 테이블에서 값 열을 제거하므로 absent_for 연산으로 생성된 테이블의 signal 열에는 마지막 입력 포인트가 기록된 이후의 분 단위 수가 포함됩니다.

알림 정책 구성

MQL 쿼리 외에도 알림 정책 조건에는 두 개의 다른 값이 포함됩니다.

  • 조건을 충족해야 하는 입력 시계열 수입니다. 값은 다음 중 하나일 수 있습니다.
    • 단일 시계열
    • 특정한 수의 시계열
    • 시계열의 백분율
    • 모든 시계열
  • 알림 상태의 기간(duration), 즉 알림 조건이 지속적으로 true로 평가되어야 하는 기간입니다.

특정 시계열에서 쿼리가 지속적으로 true로 평가되면 해당 시계열은 활성으로 간주됩니다. 지정된 수의 시계열이 활성화되면 알림 정책이 트리거되고 각 활성 시계열에 대해 알림이 생성됩니다. 알림 정책 평가 방법은 측정항목 기반 알림 정책 동작을 참조하세요.

시계열 데이터 도착이 중지되거나 데이터가 지연될 때 Monitoring은 데이터를 누락된 것으로 분류합니다. 데이터의 도착이 중지될 때 측정항목 임곗값 조건을 평가하도록 Monitoring을 구성하는 방법에 대한 자세한 내용은 부분적인 측정항목 데이터를 참조하세요.

조건에 MQL을 사용하는 경우 이 조건이 정책에서 유일한 조건이어야 합니다. MQL 기반 알림 정책에서는 여러 조건을 사용할 수 없습니다.

가이드라인

MQL을 사용하면 사용자 정의 라벨을 만들고 이를 이슈에 연결할 수 있습니다. 예시를 보려면 알림 정책에 심각도 수준 추가를 참조하세요.

측정항목 유형의 단위는 측정항목 유형의 관련 표에 나열되어 있습니다. 측정항목 유형 compute.googleapis.com/instance/cpu/utilization의 경우는 compute 표를 참조하세요.

다음 단계

Google Cloud 콘솔과 Cloud Monitoring API를 사용하여 MQL 기반 조건으로 알림 정책을 만드는 방법은 MQL 알림 만들기를 참조하세요.

MQL 기반 조건으로 효과적인 알림 정책을 구성하기 위한 가이드라인 및 권장사항 목록은 MQL 알림 권장사항을 참조하세요.

MQL 기반 조건의 알림 정책의 일반적인 문제를 해결하는 방법은 MQL 알림 문제 해결을 참조하세요.

MQL 기반 조건이 있는 알림 정책의 예시는 MQL 알림 사용 사례를 참조하세요.