라벨로 알림에 주석 추가

이 문서에서는 알림 정책에 사용자 정의 라벨을 추가하여 알림 및 이슈를 관리하는 방법을 설명합니다. 사용자 정의 라벨이 알림에 포함되기 대문에 이슈 심각도를 나타내는 라벨을 추가하면 조사할 알림을 선별하는 데 도움이 되는 정보가 알림에 포함됩니다.

라벨 정보

라벨은 시계열, 알림 정책, 이슈와 관련된 키-값 쌍입니다. 라벨에는 측정항목 라벨, 리소스 라벨, 사용자 정의 라벨이 있습니다. 측정항목 및 리소스 라벨에는 수집되는 측정항목 또는 측정항목이 기록되는 대상 리소스에 대한 특정 정보가 포함되어 있습니다. 반면에 사용자 정의 라벨은 사용자가 만들고 사용자 요구와 관련된 정보를 기록하는 라벨입니다.

시계열 데이터가 기록되면 해당 데이터에 대한 정보를 기록하기 위해 데이터에 라벨이 연결됩니다. 예를 들어 시계열의 라벨로 가상 머신(VM), 영역, Google Cloud 프로젝트, 기기 유형이 식별될 수 있습니다.

알림 정책 및 이슈에 사용자 라벨을 추가할 수 있습니다.

알림에서 라벨 보기

이슈의 세부정보 페이지, 알림 정책의 세부정보 페이지, 일부 알림에서 알림 정책 또는 이슈의 라벨을 볼 수 있습니다.

  • 이메일 알림에서 정책에 추가하는 라벨은 정책 라벨 섹션에 나열되고 이슈에 추가하는 라벨은 측정항목 라벨 섹션에 나열됩니다.

  • PagerDuty, 웹훅, Pub/Sub 알림에서 알림 정책 또는 이슈에 추가하는 라벨은 JSON 데이터에 포함됩니다. 알림 정책 라벨은 JSON 구조의 policy_user_labels 필드에 나열됩니다.

    "policy_user_labels": {
      "severity": "critical",
    }
    

    이슈 라벨은 JSON 구조의 metric 필드에 포함됩니다.

    "metric": {
      "type" : "compute.googleapis.com/instance/cpu/utilization"
      "displayName": "CPU Utilization",
      "labels": {
        "instance_name": "some_instance_name",
        "severity": "critical"
      },
    }
    

    앞에 표시된 것처럼 metric 필드에는 측정항목 유형, 측정항목의 표시 이름, 측정항목 라벨, 이슈에 추가된 사용자 정의 라벨이 나열됩니다.

예시: 라벨 및 MQL을 사용하여 동적 심각도 수준 만들기

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' No 이 시계열은 라벨이 입력 시계열과 동일합니다. 심각도 수준은 없습니다.
'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% 미만이라고 가정해보세요. 다음 시퀀스에서는 이슈가 열리고 닫히는 방법을 보여줍니다.

  1. CPU 사용률 측정값이 70%보다 작기 때문에 정책 핸들러가 'GOOD' 시계열을 생성하고 이슈가 열리지 않습니다.

  2. 그런 후 CPU 사용률이 93%로 증가한다고 가정해보세요. 정책 핸들러가 'GOOD' 시계열 데이터 생성을 중지하고 'Critical' 시계열에 대해 데이터 생성을 시작합니다.

    이슈 관리자에게는 이 조건을 트리거하는 새로운 시계열인 'CRITICAL' 시계열이 표시되고, 이슈가 생성됩니다. 알림에는 CRITICAL 값의 심각도 수준이 포함됩니다.

  3. CPU 사용률이 75%로 낮아졌다고 가정해보세요. 정책 핸들러가 'CRITICAL' 시계열 생성을 중지하고 'INFO' 시계열 생성을 시작합니다.

    이슈 관리자에는 이 조건을 트리거하는 새 시계열인 'INFO' 시계열이 표시되고 이슈가 열립니다. 알림에는 INFO 값의 심각도 수준이 포함됩니다.

    이슈 관리자에는 'CRITICAL' 시계열에 대한 데이터가 수신되지 않고 해당 시계열에 대해 이슈가 열려 있는 것으로 표시됩니다. 데이터 수신이 중지될 때 이슈를 닫도록 정책이 구성되었기 때문에 이슈 관리자가 'CRITICAL' 시계열과 연결된 이슈를 닫습니다. 따라서 심각도 수준에 INFO 값이 있는 이슈만 열린 상태로 유지됩니다.

  4. 마지막으로 CPU 사용률이 45%로 낮아졌다고 가정해보세요. 이 값은 모든 임곗값보다도 작습니다. 따라서 정책 핸들러가 'INFO' 시계열 생성을 중지하고 'GOOD' 시계열 생성을 시작합니다.

    이슈 관리자에는 'INFO' 시계열에 대한 데이터가 수신되지 않고 해당 시계열에 대해 이슈가 열려 있는 것으로 표시됩니다. 정책에 권장 설정이 사용되고 있으므로 이슈가 닫힙니다.

evaluationMissingData 필드에 권장 값을 사용하지 않으면 데이터 수신이 중지될 때 열려 있는 이슈가 즉시 닫히지 않습니다. 그 결과 동일한 입력 시계열에 대해 열려 있는 이슈가 여러 개 표시될 수 있습니다. 자세한 내용은 부분적인 측정항목 데이터를 참조하세요.

다음 단계