MQL을 사용한 알림 정책

조건에 MQL 쿼리가 포함된 Monitoring 알림 정책을 만들 수 있습니다. 알림 조건에 대한 MQL 쿼리는 다른 MQL 쿼리와 비슷하지만 MQL 알림 작업도 포함되어 있습니다.

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

MQL 알림 작업

MQL을 사용하여 임곗값과 부재 알림 정책을 모두 만들 수 있습니다.

쿼리에서 다음 MQL 알림 작업 중 하나를 사용하여 MQL 기반 알림 정책을 만드세요.

쿼리는 다음 작업 중 하나로 끝나야 합니다. 자세한 내용은 MQL 참조의 알림 섹션을 참조하세요.

쿼리에 명시적 시간 범위 지정, 즉 within 작업이 포함되지 않아야 합니다.

MQL을 사용하여 알림 정책을 만들 때 대상 시계열을 식별하기 위해 fetch, filter, group_by 등으로 MQL 쿼리를 빌드합니다. 쿼리의 이 부분은 차트의 시계열 데이터를 검색하는 데 사용되는 쿼리와 동일합니다. 예를 들어 다음 쿼리는 모든 미국 중부 리전의 모든 Compute Engine VM 인스턴스에 대한 CPU 사용률을 가져옵니다.

fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
| filter zone =~ 'us-central.*'

이 쿼리는 출력 테이블을 생성합니다. 알림을 만들려면 출력 테이블을 알림 작업에 파이핑합니다. 알림 작업은 알림 작업 전에 쿼리에서 생성된 출력 테이블의 데이터 값에 대한 부울 값을 계산합니다.

알림 작업은 입력 테이블의 데이터를 평가하기 위한 표현식을 지정합니다. 임곗값 조건의 경우 표현식은 '값이 0.5 미만입니까?'와 같이 임곗값에 대해 각 포인트를 테스트합니다.

Monitoring 알림 기능은 알림 작업의 결과를 사용하여 알림 정책이 트리거되는지 여부와 그 시기를 결정합니다. 알림 구성은 이러한 결정이 어떻게 이루어지는지 설명합니다.

임곗값 알림

임곗값 알림의 경우 condition 연산을 사용합니다. 조건 연산에서는 '값이 15퍼센트 이상'과 같은 임곗값에 따라 값을 평가하는 표현식을 사용하고 부울을 반환합니다.

condition 연산을 수행하려면 입력 테이블이 명시적 정렬 기간과 정렬되어야 합니다. 이렇게 하려면 정렬 기간을 align 작업, 예를 들어 align delta(5m)로 지정하거나, 다음 예시에서처럼 window 작업을 사용하여 수행할 수 있습니다.

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

조건은 정렬된 입력 테이블에서 각 데이터 포인트를 테스트하여 사용률 값이 임곗값 15%를 초과하는지 여부를 확인합니다. condition 연산자로 생성된 테이블에는 임곗값 평가 결과를 기록하는 부울 열과 입력 테이블의 utilization 값 열 사본이 포함된 두 번째 열이 있습니다.

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

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

MQL의 단위에 대한 상세 정보는 측정 단위를 참조하세요.

부재 알림

부재 알림의 경우 데이터가 누락되어야 하는 기간을 취하는 absent_for 연산을 사용합니다. 예를 들어 다음 테스트를 통해 미국 중부 지역에서 데이터가 8시간 동안 누락되었는지 여부를 확인합니다.

fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
| filter zone =~ 'us-central.*'
| 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 []
    | absent_for 8h
    

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

알림 구성

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

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

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

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

MQL 알림 정책 만들기(콘솔)

Google Cloud Console에서 MQL 기반 알림 정책을 만들려면 알림 정책 관리에 설명된 정책 만들기의 일반 단계를 따르세요. 알림 정책 조건을 만들 때는 양식 기반 측정항목 선택기 대신 쿼리 편집기를 사용합니다.

MQL 기반 알림 정책의 조건 편집기입니다.

다음과 같이 조건을 완성하세요.

  1. 제목이 없는 조건 필드에 값을 입력하여 조건의 이름을 지정합니다. 저장하면 조건에 숫자 식별자가 할당됩니다. 이 선택적 표시 이름을 사용하면 보다 의미 있는 설명을 제공할 수 있습니다.

  2. 알림 조건을 시작하려면 쿼리 편집기에서 모니터링할 데이터를 선택하는 쿼리를 입력합니다. 다음 쿼리는 시계열을 가져와 5분 동안 정렬합니다.

    fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
    | window 5m
    

    이 시점에 쿼리 실행을 클릭하면 차트가 표시됩니다. 한 프로젝트에서 이 쿼리는 다음과 같은 결과를 생성했습니다.

    알림을 지정하기 전의 알림 조건 차트입니다.

  3. 다음 작업 중 하나를 사용하여 쿼리에 알림 절을 추가합니다.

    • 임곗값 알림의 condition 연산자
    • 부재 알림의 absent_for 연산자

    이러한 알림 작업에 대한 상세 내용은 MQL 참조의 알림을 참조하세요.

    다음 예시에서는 condition 연산을 사용하여 임곗값을 지정합니다.

    fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
    | window 5m
    | condition val() > .05
    

    이 시점에서 쿼리 실행을 클릭하면 차트가 다음 스크린샷과 같이 조건의 임곗값 선을 추가합니다.

    알림을 지정한 후의 알림 조건 차트입니다.

  4. 아직 쿼리를 실행하지 않은 경우 쿼리 실행을 클릭합니다.

  5. 구성 창에서 알림 정책이 트리거되는 시점을 지정합니다. 다음 두 가지 값을 지정합니다.

    • Condition triggers if - 알림 작업을 충족하여 알림 정책을 트리거하기 위해 쿼리에서 반환되는 시계열의 수 지정. 다음과 같은 기준을 지정할 수 있습니다.

      • 단일 시계열
      • 특정한 수의 시계열
      • 시계열의 백분율
      • 모든 시계열.
    • For를 사용하면 알림 정책이 트리거되기 전에 조건이 충족되어야 하는 시간을 지정할 수 있습니다. 이것은 MQL 쿼리에 사용된 정렬 기간과 다릅니다. 이러한 값의 관계에 대한 자세한 내용은 정렬 기간 및 시간을 참조하세요.

  6. 추가를 클릭하여 조건을 저장합니다. 알림 정책의 조건에 대한 쿼리는 엄격한 형식으로 변환되지 않습니다.

  7. 나머지 알림 정책 구성을 진행합니다.

MQL 알림 정책 만들기(API)

API를 사용하는 경우 정책을 설정할 때 MonitoringQueryLanguageCondition 유형의 조건을 만듭니다. 자세한 내용은 알림 정책 조건 만들기를 참조하세요.

그런 다음 평소처럼 정책을 alertPolicies.create에 전달합니다.