Dataflow 파이프라인에 Cloud Monitoring 사용

Cloud Monitoring은 강력한 로깅 및 진단 기능을 제공합니다. Monitoring과 Dataflow를 통합하면 Monitoring 대시보드에서 작업 상태, 요소 수, 시스템 지연(스트리밍 작업용), 사용자 카운터와 같은 Dataflow 작업 측정항목에 액세스할 수 있습니다. 또한 Monitoring 알림을 사용하여 긴 스트리밍 시스템 지연 또는 실패한 작업과 같은 다양한 조건에 대한 알림을 받을 수 있습니다.

시작하기 전에

Java 빠른 시작, Python 빠른 시작, Go 빠른 시작의 안내에 따라 Dataflow 프로젝트를 설정합니다. 그런 후 파이프라인을 구성하고 실행합니다.

측정항목 탐색기에서 로그를 보려면 작업자 서비스 계정roles/monitoring.metricWriter 역할이 있어야 합니다.

커스텀 측정항목

Apache Beam 파이프라인에서 정의한 모든 측정항목은 커스텀 측정항목으로 Dataflow에서 Monitoring으로 보고됩니다. Apache Beam에는 Counter, Distribution, Gauge3가지 유형의 파이프라인 측정항목이 있습니다.

  • Dataflow는 CounterDistribution 측정항목을 Monitoring에 보고합니다.
  • Distribution_MAX, _MIN, _MEAN, _COUNT 서픽스가 있는 4가지 하위 측정항목으로 보고됩니다.
  • Dataflow는 Distribution 측정항목에서 히스토그램을 만들 수 없습니다.
  • Dataflow는 약 30초마다 Monitoring에 증분 업데이트를 보고합니다.
  • 충돌을 피하기 위해 모든 Dataflow 커스텀 측정항목을 double 데이터 유형으로 내보냅니다.
  • 여기에서는 간단하게 모든 Dataflow 커스텀 측정항목을 GAUGE 측정항목 종류로 내보냅니다. 다음 Monitoring Query Language 예시와 같이 GAUGE 측정항목에 대해 일정 기간의 델타를 모니터링할 수 있습니다.

     fetch dataflow_job
     | metric 'dataflow.googleapis.com/job/user_counter'
     | filter (metric.job_id == '[JobID]')
     | delta 1m
     | group_by 1m, [value_user_counter_mean: mean(value.user_counter)]
     | every 1m
     | group_by [metric.ptransform, metric.metric_name],
       [value_user_counter_mean_aggregate: aggregate(value_user_counter_mean)]
    
  • Dataflow 커스텀 측정항목은 Monitoring에서 metric_name: metric-nameptransform: ptransform-name 라벨과 함께 dataflow.googleapis.com/job/user_counter로 표시됩니다.

  • 이전 버전과의 호환성을 위해 Dataflow도 커스텀 측정항목을 custom.googleapis.com/dataflow/metric-name으로 Monitoring에 보고합니다.

  • Dataflow 커스텀 측정항목에는 Monitoring의 카디널리티 제한사항이 적용됩니다.

  • Dataflow 커스텀 측정항목은 프로젝트마다 100개로 제한됩니다. 이러한 측정항목은 custom.googleapis.com/dataflow/metric-name으로 게시됩니다.

Monitoring에 보고된 커스텀 측정항목에는 Cloud Monitoring 가격 책정에 따라 요금이 청구됩니다.

측정항목 탐색기 사용

Monitoring을 사용하여 Dataflow 측정항목을 살펴봅니다. 이 섹션의 단계를 수행하여 각 Apache Beam 파이프라인에 제공되는 표준 측정항목을 관찰합니다. 측정항목 탐색기 사용에 대한 자세한 내용은 측정항목 탐색기로 차트 만들기를 참조하세요.

  1. Google Cloud 콘솔에서 Monitoring을 선택합니다.

    Monitoring으로 이동

  2. 탐색 창에서 측정항목 탐색기를 선택합니다.

  3. 측정항목 선택 창에서 필터에 Dataflow Job를 입력합니다.

  4. 표시되는 목록에서 한 가지 작업에 대해 관찰할 측정항목을 선택합니다.

Dataflow 작업을 실행할 때 소스 및 싱크의 측정항목을 모니터링할 수도 있습니다. 예를 들어 BigQuery Storage API 측정항목을 모니터링할 수 있습니다. 자세한 내용은 대시보드, 차트, 알림 만들기BigQuery Data Transfer Service의 측정항목 전체 목록을 참조하세요.

알림 정책 및 대시보드 만들기

Monitoring은 Dataflow 관련 측정항목에 대한 액세스를 제공합니다. 대시보드를 만들어 측정항목의 시계열을 차트로 작성하고 측정항목이 지정된 값에 도달하면 알려주는 알림 정책을 만듭니다.

리소스 그룹 만들기

알림을 더 쉽게 설정하고 대시보드를 빌드하려면 여러 Apache Beam 파이프라인을 포함하는 리소스 그룹을 만듭니다.

  1. Google Cloud 콘솔에서 Monitoring을 선택합니다.

    Monitoring으로 이동

  2. 탐색창에서 그룹을 선택합니다.

  3. 그룹 만들기를 클릭합니다.

  4. 그룹 이름을 입력합니다.

  5. 그룹에 포함된 Dataflow 리소스를 정의하는 필터 기준을 추가합니다. 예를 들어 파이프라인의 프리픽스 이름이 필터 기준이 될 수 있습니다. 그룹 만들기

  6. 그룹이 생성되면 해당 그룹의 리소스와 관련된 기본 측정항목을 볼 수 있습니다.

Dataflow 측정항목에 대한 알림 정책 만들기

Monitoring을 사용하면 알림을 만들고 측정항목이 지정된 기준점을 초과할 때 알림을 받을 수 있습니다. 예를 들어 스트리밍 파이프라인의 시스템 지연이 사전 정의된 값을 초과하면 알림을 받을 수 있습니다.

  1. Google Cloud 콘솔에서 Monitoring을 선택합니다.

    Monitoring으로 이동

  2. 탐색 창에서 알림을 선택합니다.

  3. 정책 만들기를 클릭합니다.

  4. 새 알림 정책 만들기 페이지에서 알림 조건과 알림 채널을 정의합니다.
    예를 들어 WindowedWordCount Apache Beam 파이프라인 그룹의 시스템 지연에 대한 알림을 설정하려면 다음 단계를 완료합니다.

    1. 측정항목 선택을 클릭합니다.
    2. 측정항목 선택 필드에 Dataflow Job을 입력합니다.
    3. 측정항목 카테고리작업을 선택합니다.
    4. 측정항목시스템 지연을 선택합니다.

    알림이 트리거될 때마다 이슈 및 이에 상응하는 이벤트가 생성됩니다. 알림에서 이메일 또는 SMS와 같은 알림 메커니즘을 지정한 경우에도 알림을 받게 됩니다.

커스텀 모니터링 대시보드 빌드

가장 관련성이 높은 Dataflow 관련 차트를 사용하여 Monitoring 대시보드를 빌드할 수 있습니다. 대시보드에 차트를 추가하려면 다음 단계를 수행합니다.

  1. Google Cloud 콘솔에서 Monitoring을 선택합니다.

    Monitoring으로 이동

  2. 탐색창에서 대시보드를 선택합니다.

  3. 대시보드 만들기를 클릭합니다.

  4. 위젯 추가를 클릭합니다.

  5. 위젯 추가 창의 데이터측정항목을 선택합니다.

  6. 측정항목 선택 창의 측정항목Dataflow Job을 입력합니다.

  7. 측정항목 카테고리와 측정항목을 선택합니다.

대시보드에 원하는 만큼 차트를 추가할 수 있습니다.

Monitoring 에이전트에서 작업자 VM 측정항목 수신

Monitoring을 사용하여 영구 디스크, CPU, 네트워크, 프로세스 측정항목을 모니터링할 수 있습니다. 파이프라인을 실행할 때 Dataflow 작업자 VM 인스턴스에서 Monitoring 에이전트를 사용 설정합니다. 사용할 수 있는 Monitoring 에이전트 측정항목 목록을 참조하세요.

Monitoring 에이전트를 사용 설정하려면 파이프라인을 실행할 때 --experiments=enable_stackdriver_agent_metrics 옵션을 사용합니다. 작업자 서비스 계정에는 roles/monitoring.metricWriter 역할이 있어야 합니다.

파이프라인을 중지하지 않고 Monitoring 에이전트를 중지하려면 --experiments=enable_stackdriver_agent_metrics 매개변수 없이 교체 작업을 시작하여 파이프라인을 업데이트합니다.

스토리지 및 보관

완료되거나 취소된 Dataflow 작업 정보는 30일 동안 저장됩니다.

작업 로그는 _Default 로그 버킷에 저장됩니다. Logging API 서비스 이름은 dataflow.googleapis.com입니다. Cloud Logging에 사용되는 Google Cloud 모니터링 리소스 유형 및 서비스에 대한 자세한 내용은 모니터링 리소스 및 서비스를 참조하세요.

Logging에서 로그 항목이 보관되는 기간에 대한 자세한 내용은 할당량 및 한도: 로그 보관 기간의 보관 정보를 참조하세요.

작업 로그 보기에 대한 자세한 내용은 파이프라인 로그 모니터링 및 보기를 참조하세요.

다음 단계

자세한 내용은 다음 리소스를 참조하세요.