Cloud Monitoring을 사용하여 환경 모니터링

Cloud Composer에서 Cloud MonitoringCloud Logging을 사용할 수 있습니다.

Monitoring은 클라우드 기반 애플리케이션의 성능, 업타임, 전반적인 상태에 관한 정보를 제공합니다. Cloud Monitoring은 Cloud Composer에서 측정항목, 이벤트, 메타데이터를 수집하여 대시보드와 차트를 통해 유용한 정보를 생성합니다. Monitoring을 사용하여 Cloud Composer 환경 및 Airflow 측정항목의 성능과 상태를 파악할 수 있습니다.

Logging은 스케줄러와 작업자 컨테이너가 생성하는 로그를 캡처합니다. 이러한 로그는 디버깅에 도움이 되는 유용한 시스템 수준 및 Airflow 종속성 정보를 포함합니다. 로그를 보는 방법에 대한 자세한 내용은 Airflow 로그 보기를 참조하세요.

시작하기 전에

  • Cloud Composer 환경의 로그 및 측정항목에 액세스하려면 다음과 같은 권한이 필요합니다.

    • 로그 및 측정항목에 대한 읽기 전용 액세스: logging.viewermonitoring.viewer
    • 비공개 로그를 포함한 로그에 대한 읽기 전용 액세스: logging.privateLogViewer
    • 측정항목에 대한 읽기/쓰기 액세스: monitoring.editor

    자세한 내용은 Cloud Composer 액세스 제어를 참조하세요.

  • 중복 로깅을 방지하기 위해 Google Kubernetes Engine용 Cloud Logging이 중지되어 있습니다.

  • Cloud Logging은 Google Cloud 프로젝트에서 발생하는 각 상태와 이벤트에 대한 항목을 생성합니다. 제외 필터를 사용하면 Cloud Composer에서 Cloud Logging이 생성하는 로그를 비롯해 로그 볼륨을 줄일 수 있습니다. jobs.py에서 로그를 제외하면 상태 확인 실패 및 CrashLoopBackOff 오류가 발생할 수 있습니다. 제외되지 않도록 -jobs.py를 제외 필터에 포함해야 합니다.

  • Monitoring은 분당 2번 이상 실행되는 워크플로 및 작업의 개수 값을 표시할 수 없으며 현재는 실패한 작업의 측정항목을 표시하지 않습니다.

측정항목 및 리소스 유형

Monitoring에서 워크플로(DAG) 및 Celery Executor에 대한 Airflow 측정항목을 살펴볼 수 있습니다.

환경

환경 상태

환경 상태를 확인하려면 상태 측정항목 composer.googleapis.com/environment/healthy를 사용하면 됩니다.

Cloud Composer는 5분마다 airflow_monitoring이라는 활성 DAG를 실행하고 환경 상태를 다음과 같이 보고합니다.

  • DAG 실행이 성공적으로 완료되면 상태는 True입니다.
  • DAG 실행이 실패하면 상태는 False입니다.
  • DAG 실행이 완료되지 않으면 Cloud Composer가 5분마다 DAG 상태를 폴링하고 제한 시간 1시간을 초과하면 False를 보고합니다.

활성 DAG는 dags/ 폴더에 저장되고 Airflow 웹 UI에 표시됩니다. 활성 DAG의 빈도와 콘텐츠를 변경할 수 없으며 변경사항이 지속되지 않으므로 수정해서는 안 됩니다.

데이터베이스 상태

데이터베이스 상태를 확인하려면 상태 측정항목 composer.googleapis.com/environment/database_health를 사용하면 됩니다.

Cloud Composer Airflow 모니터링 Pod가 데이터베이스를 1분마다 핑하고 상태를 SQL 연결 설정이 가능하면 True로, 가능하지 않으면 False로 보고합니다.

워크플로

다음 워크플로 측정항목을 사용하면 워크플로 실행의 효율성을 모니터링하고 긴 지연 시간을 유발하는 straggler 작업을 식별하는 데 도움이 됩니다.

워크플로 측정항목 API
워크플로 실행 횟수 composer.googleapis.com/workflow/run_count
각 워크플로 실행의 지속 시간 composer.googleapis.com/workflow/run_duration
작업 실행 횟수 composer.googleapis.com/workflow/task/run_count
각 작업의 지속 시간 composer.googleapis.com/workflow/task/run_duration

Cloud Monitoring은 완료된 워크플로와 태스크 실행의 측정항목(성공 또는 실패)만 표시합니다. 워크플로 활동이 없고 진행 중인 워크플로 및 작업 실행이 없으면 데이터가 표시되지 않습니다.

Celery Executor

다음과 같은 Celery Executor 측정항목을 사용할 수 있습니다. 이러한 측정항목은 사용자 환경에 충분한 작업자 리소스가 있는지 확인하는 데 도움이 될 수 있습니다.

Celery Executor 측정항목 API
큐의 작업 수 composer.googleapis.com/environment/task_queue_length
온라인 Celery 작업자 수 composer.googleapis.com/environment/num_celery_workers

Cloud Monitoring 문서에서 Cloud Composer 측정항목과 리소스에 대한 다음 정보도 포함될 수 있습니다.

  • Cloud Composer가 Cloud Monitoring에 보고하는 사용량 측정항목 목록은 측정항목 목록을 참조하세요.
  • cloud_composer_environment 리소스 유형에 대한 자세한 내용은 Cloud Monitoring 문서의 모니터링되는 리소스 유형을 참조하세요.

Cloud Composer 환경에서 Monitoring 사용

Monitoring 콘솔 또는 Monitoring API를 사용하여 Monitoring에 액세스할 수 있습니다.

콘솔

  1. Cloud Composer 환경을 생성한 후 Monitoring 콘솔로 이동하여 환경 모니터링 데이터를 확인합니다.
  2. Monitoring에 처음 액세스하면 작업공간을 만들고 프로젝트를 선택하라는 메시지가 표시됩니다.
  3. 작업공간을 설정하면 Monitoring 콘솔이 나타납니다.

  4. 리소스 > 측정항목 탐색기를 선택하고 Cloud Composer를 선택합니다.
    1. 리소스 유형 및 측정항목 찾기 입력 상자를 클릭하여 리소스 드롭다운 목록을 표시합니다.
    2. Cloud Composer 환경 또는 Cloud Composer 워크플로 리소스를 선택합니다. 또는 상자에 cloud_composer_environment 또는 cloud_composer_workflow를 입력합니다.
  5. 입력 상자를 다시 클릭한 다음 드롭다운 목록에서 측정항목을 선택합니다. 측정항목 이름에 마우스를 가져가면 측정항목에 대한 정보가 표시됩니다.
  6. Cloud Composer 환경 정보는 workflow_name 라벨(workflow_name=environment.workflow)에 포함되어 있습니다. 특정 환경의 워크플로 측정항목을 보려면 필터를 추가합니다.
    1. workflow_name의 필터를 만듭니다.
    2. 워크플로 측정항목을 보려는 환경의 이름으로 정규 표현식 =~ "your-environment-name.*"를 사용하여 프리픽스를 필터링합니다. 필터링 라벨에 정규 표현식을 사용하는 방법에 대한 자세한 내용은 필터링을 참조하세요.
  7. 차트 저장을 클릭합니다.

    또한 측정항목 라벨별로 그룹화하고, 집계하고, 차트 보기 옵션을 선택할 수도 있습니다. Monitoring 문서를 참조하세요.

API

Monitoring timeSeries.list API를 사용하여 filter 표현식으로 정의된 측정항목을 캡처 및 나열합니다. API 페이지에서 API 사용해 보기 템플릿을 사용하여 API 요청을 전송하고 응답을 표시합니다.

커스텀 Monitoring 대시보드 빌드

선택한 Cloud Composer 환경 측정항목의 차트를 표시하는 커스텀 Monitoring 대시보드를 빌드할 수 있습니다.

  1. Google Cloud Console에서 Monitoring을 선택하거나 다음 버튼을 사용합니다.

    모니터링으로 이동

  2. 대시보드 > 대시보드 만들기를 선택합니다.

  3. 제목 없는 대시보드에서 차트 추가를 클릭하고 차트를 만듭니다.

    1. 차트 추가 창에서 Cloud Composer 환경을 리소스 유형으로 선택합니다.
    2. 하나 이상의 측정항목 및 차트 속성을 선택합니다.
    3. 새 차트 제목을 확인하거나 입력하고 저장을 클릭합니다.
    4. 필요에 따라 대시보드에 차트를 추가하고 저장합니다.

    다음 예시에서는 Task Duration 측정항목을 보여줍니다. 이 측정항목은 워크플로의 활성 작업 지속 시간을 표시하며 성능을 조정하는 데 유용합니다.

  4. 대시보드를 보려면 Monitoring 대시보드 메뉴에서 해당 제목을 클릭합니다.

  5. 대시보드 표시 페이지에서 차트를 보고, 업데이트하고, 삭제할 수 있습니다.

Monitoring 알림 사용

알림 정책을 만들어 측정항목 값을 모니터링하고 측정항목이 조건을 위반하면 이를 알릴 수 있습니다. Cloud Composer 환경 또는 Cloud Composer 워크플로 리소스를 모니터링하는 알림 정책을 만드는 일반적인 단계는 다음과 같습니다.

  1. Google Cloud Console에서 Monitoring으로 이동하거나 다음 버튼을 사용합니다.
    Monitoring으로 이동
  2. Monitoring 탐색창에서 알림을 선택한 다음 정책 만들기를 선택합니다.
  3. 알림 정책의 이름을 입력합니다.
  4. 조건 추가를 클릭합니다.
    1. 대상 창의 설정은 모니터링할 리소스와 측정항목을 지정합니다. 텍스트 상자를 클릭하여 메뉴를 활성화한 후 Cloud Composer 환경 또는 Cloud Composer 워크플로 리소스를 선택합니다. 다음으로 측정항목 목록에서 측정항목을 선택합니다.
    2. 알림 정책의 구성 창에 있는 설정에 따라 알림이 실행되는 시점이 결정됩니다. 이 창의 필드 대부분은 기본값으로 채워집니다. 창의 필드에 대한 자세한 내용은 알림 정책 문서의 구성을 참조하세요.
    3. 추가를 클릭합니다.
  5. (선택사항) 알림 채널 추가를 클릭하고 알림 채널 정보를 입력합니다.
  6. (선택사항) 문서를 클릭하고 알림 메시지에 포함할 정보를 추가합니다.
  7. 저장을 클릭합니다.
자세한 내용은 알림 정책을 참조하세요.

알림 보기

측정항목 임계값 조건에 의해 알림이 트리거되면 Monitoring에서 이슈(및 해당 이벤트)가 만들어집니다.

Monitoring 알림 > 이슈 페이지에서 이슈를 검토할 수 있습니다.

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

다음 단계