Dataproc 측정항목 알림 만들기

Dataproc 클러스터 또는 작업 측정항목이 지정된 기준을 초과할 때 이를 알려주는 Monitoring 알림을 만들 수 있습니다.

알림 만들기 단계

알림을 만들려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 알림 페이지를 엽니다.

  2. + 정책 만들기를 클릭하여 알림 정책 만들기 페이지를 엽니다.

    1. 측정항목 선택을 클릭합니다.
    2. '리소스 또는 측정항목 이름으로 필터링' 입력 상자에 'dataproc'을 입력하여 Dataproc 측정항목을 나열합니다. Cloud Dataproc 측정항목의 계층 구조를 탐색하여 클러스터, 작업, 배치 또는 세션 측정항목을 선택합니다.
    3. 적용을 클릭합니다.
    4. 다음을 클릭하여 알림 트리거 구성 창을 엽니다.
    5. 알림을 트리거할 기준 값을 설정합니다.
    6. 다음을 클릭하여 알림 구성 및 완료 창을 엽니다.
    7. 알림 채널, 문서, 알림 정책 이름을 설정합니다.
    8. 다음을 클릭하여 알림 정책을 검토합니다.
    9. 정책 만들기를 클릭하여 알림을 만듭니다.

샘플 알림

이 섹션에서는 Dataproc 서비스에 제출된 작업에 대한 샘플 알림과 YARN 애플리케이션으로 실행된 작업에 대한 알림을 설명합니다.

장기 실행 Dataproc 작업 알림

Dataproc은 작업이 서로 다른 상태에 있었던 기간을 추적하는 dataproc.googleapis.com/job/state 측정항목을 내보냅니다. 이 측정항목은 Google Cloud 콘솔 측정항목 탐색기의 Cloud Dataproc 작업(cloud_dataproc_job) 리소스 아래에 있습니다. 이 측정항목을 사용하여 작업의 RUNNING 상태가 기간 기준을 초과할 때 이를 알려주는 알림을 설정할 수 있습니다.

작업 기간 알림 설정

이 예시에서는 Monitoring 쿼리 언어(MQL)를 사용하여 알림 정책을 만듭니다(MQL 알림 정책 만들기(콘솔) 참조).

fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter metric.state == 'RUNNING'
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()

다음 예시에서는 작업이 30분 넘게 실행된 경우 알림이 트리거됩니다.

resource.job_id를 필터링하여 쿼리를 수정해 특정 작업에 적용할 수 있습니다.

fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter (resource.job_id == '1234567890') && (metric.state == 'RUNNING')
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()

장기 실행 YARN 애플리케이션 알림

이전 샘플에서는 Dataproc 작업이 지정된 기간보다 오래 실행될 때 트리거되는 알림을 보여주지만, Google Cloud 콘솔, Google Cloud CLI를 통해 또는 직접적인 Dataproc jobs API 호출을 통해 Dataproc 서비스에 제출된 작업에만 적용됩니다. OSS 측정항목을 사용하여 YARN 애플리케이션의 실행 시간을 모니터링하는 유사한 알림을 설정할 수도 있습니다.

먼저 약간의 배경 지식이 필요합니다. YARN은 실행 시간 측정항목을 여러 버킷으로 내보냅니다. 기본적으로 YARN은 60분, 300분, 1440분을 버킷 기준으로 유지하고 4개의 측정항목 running_0, running_60, running_300, running_1440을 내보냅니다.

  • running_0은 런타임이 0분에서 60분 사이인 작업의 수를 기록합니다.

  • running_60은 런타임이 60분에서 300분 사이인 작업의 수를 기록합니다.

  • running_300은 런타임이 300분에서 1440분 사이인 작업의 수를 기록합니다.

  • running_1440은 런타임이 1440분을 초과하는 작업의 수를 기록합니다.

예를 들어 72분 동안 실행되는 작업은 running_60에는 기록되지만 running_0에는 기록되지 않습니다.

Dataproc 클러스터 만들기 중에 yarn:yarn.resourcemanager.metrics.runtime.buckets 클러스터 속성에 새 값을 전달하여 이러한 기본 버킷 기준을 수정할 수 있습니다. 커스텀 버킷 기준을 정의할 때 측정항목 재정의도 정의해야 합니다. 예를 들어 버킷 기준을 30분, 60분, 90분으로 지정하려면 gcloud dataproc clusters create 명령어에 다음 플래그가 포함되어야 합니다.

  • 버킷 기준: ‑‑properties=yarn:yarn.resourcemanager.metrics.runtime.buckets=30,60,90

  • 측정항목 재정의: ‑‑metric-overrides=yarn:ResourceManager:QueueMetrics:running_0, yarn:ResourceManager:QueueMetrics:running_30,yarn:ResourceManager:QueueMetrics:running_60, yarn:ResourceManager:QueueMetrics:running_90

샘플 클러스터 만들기 명령어

gcloud dataproc clusters create test-cluster  \
   --properties ^#^yarn:yarn.resourcemanager.metrics.runtime.buckets=30,60,90  \
   --metric-sources=yarn  \
   --metric-overrides=yarn:ResourceManager:QueueMetrics:running_0,yarn:ResourceManager:QueueMetrics:running_30,yarn:ResourceManager:QueueMetrics:running_60,yarn:ResourceManager:QueueMetrics:running_90

이러한 측정항목은 Google Cloud 콘솔 측정항목 탐색기의 VM 인스턴스(gce_instance) 리소스 아래에 나열됩니다.

YARN 애플리케이션 알림 설정

  1. 필수 버킷 및 측정항목이 사용 설정된 클러스터를 만듭니다.

  2. YARN 측정항목 버킷의 애플리케이션 수가 지정된 기준을 초과하면 트리거되는 알림 정책을 만듭니다.

    • 필요에 따라 패턴과 일치하는 클러스터에 대한 알림을 전송하도록 필터를 추가합니다.

    • 알림을 트리거하기 위한 기준을 구성합니다.

실패한 Dataproc 작업 알림

또한 dataproc.googleapis.com/job/state 측정항목(장기 실행 Dataproc 작업 알림 참조)을 사용하여 Dataproc 작업이 실패할 때 알림을 받을 수 있습니다.

실패한 작업 알림 설정

이 예시에서는 Monitoring 쿼리 언어(MQL)를 사용하여 알림 정책을 만듭니다(MQL 알림 정책 만들기(콘솔) 참조).

알림 MQL
fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter metric.state == 'ERROR'
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()
알림 트리거 구성

다음 예에서는 프로젝트에서 Dataproc 작업이 실패하면 알림이 트리거됩니다.

resource.job_id를 필터링하여 쿼리를 수정해 특정 작업에 적용할 수 있습니다.

fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter (resource.job_id == '1234567890') && (metric.state == 'ERROR')
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()

클러스터 용량 편차 알림

Dataproc은 클러스터의 예상 노드 수와 활성 YARN 노드 수 간의 차이를 보고하는 dataproc.googleapis.com/cluster/capacity_deviation 측정항목을 내보냅니다. Google Cloud 콘솔 측정항목 탐색기Cloud Dataproc 클러스터 리소스에서 이 측정항목을 확인할 수 있습니다. 이 측정항목을 사용하여 클러스터 용량이 지정된 기준 기간보다 오랫동안 예상 용량에서 벗어나면 알려주는 알림을 만들 수 있습니다.

capacity_deviation 측정항목의 클러스터 노드 보고 시 일시적으로 다음 작업이 발생할 수 있습니다. 거짓양성 알림을 피하기 위해 다음 작업을 고려하여 측정항목 알림 기준을 설정합니다.

  • 클러스터 만들기 및 업데이트: 클러스터 생성 또는 업데이트 작업 중에 capacity_deviation 측정항목을 내보내지 않습니다.

  • 클러스터 초기화 작업: 노드가 프로비저닝된 후 초기화 작업이 수행됩니다.

  • 보조 작업자 업데이트: 업데이트 작업이 완료된 후 보조 작업자가 비동기식으로 추가됩니다.

용량 편차 알림 설정

이 예시에서는 모니터링 쿼리 언어(MQL)를 사용하여 알림 정책을 만듭니다.

fetch cloud_dataproc_cluster
| metric 'dataproc.googleapis.com/cluster/capacity_deviation'
| every 1m
| condition val() <> 0 '1'

다음 예시에서는 클러스터 용량 편차가 30분 넘게 0이 아니면 알림이 트리거됩니다.

알림 보기

측정항목 기준 조건에 의해 알림이 트리거되면 Monitoring에서 이슈 및 해당 이벤트가 만들어집니다. Google Cloud 콘솔의 Monitoring 알림 페이지에서 이슈를 볼 수 있습니다.

알림 정책에 이메일 또는 SMS 알림과 같은 알림 메커니즘을 정의한 경우 Monitoring에서 이슈에 대한 알림을 전송합니다.

다음 단계