기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon MWAA의 대시보드 및 알람 모니터링
Amazon Managed Workflows for Apache Airflow 환경의 환경 세부 정보 페이지에는 기본 제공 CloudWatch 지표 대시보드와 환경 경보 테이블이 포함되어 있습니다. 이러한 기능을 사용하면 추가 설정 없이 Amazon MWAA 콘솔에서 직접 환경 상태를 모니터링할 수 있습니다.
Apache Airflow는 DAG 프로세스 수, DAG 백 크기, 현재 실행 중인 작업, 작업 실패, 성공을 포함한 몇 가지 프로세스에 대한 지표를 공개합니다. 환경을 생성하면 Apache Airflow는 Amazon MWAA 환경에 대한 지표를 CloudWatch로 자동으로 전송합니다. 기본 제공 대시보드 외에도 Amazon CloudWatch에서 사용자 지정 대시보드를 구축하고 특정 지표에 대한 경보를 추가할 수 있습니다. 경보가 대시보드에 있으면 ALARM 상태가 되면 빨간색으로 바뀝니다. 이렇게 하면 Amazon MWAA 환경의 상태를 사전에 더 쉽게 모니터링할 수 있습니다.
목차
지표 대시보드 보기
환경 세부 정보 페이지에는 콘솔의 CloudWatch 지표 아래에 표시된 기본 제공 CloudWatch 지표 대시보드가 포함되어 있습니다. 이 임베디드 CloudWatch 대시보드는 추가 설정 없이 환경에 대한 차트를 표시합니다.
CloudWatch 콘솔에서 전체 지표 세트를 열려면 CloudWatch에서 모두 보기를 선택합니다.
대시보드에는 다음 두 CloudWatch 네임스페이스의 지표가 표시됩니다.
-
AmazonMWAA- Apache Airflow 지표입니다. -
AWS/MWAA- 컨테이너, 대기열 및 데이터베이스 지표.
다음 컨트롤을 사용하여 대시보드에 표시되는 내용을 변경할 수 있습니다.
-
경보 권장 사항 토글을 켜면 권장 지표만 표시됩니다. 이 토글을 켜면 각 차트는 경보 임계값을 주석으로 그립니다. 지표에 따라 주석은 위의
지표인 경우 경보를, 아래의지표인 경우 경보를 읽습니다. -
지표 섹션 필터를 사용하여 특정 그룹의 차트만 표시합니다. 사용 가능한 그룹은 컨테이너, 데이터베이스 및 대기열, 스케줄러, DAG 처리, 작업 및 트리거입니다.
참고
지표 허용 목록 또는 차단 목록 옵션을 사용하여 게시하는 Apache Airflow 지표를 필터링하도록 환경을 구성하는 경우 일부 차트에는 데이터가 없을 수 있습니다.
참고
지표 대시보드를 보려면 IAM 자격 증명에 , cloudwatch:GetMetricData cloudwatch:GetMetricStatistics및를 포함한 CloudWatch 지표를 읽을 수 있는 권한이 있어야 합니다cloudwatch:ListMetrics. 이러한 권한이 없으면 차트가 데이터 없이 렌더링됩니다.
Amazon MWAA가 게시하는 지표의 전체 목록은 섹션을 참조하세요CloudWatch의 Apache Airflow 환경 지표.
대시보드에 표시된 지표
대시보드는 지표 섹션으로 필터링할 수 있는 6개의 섹션으로 차트를 구성합니다. 큐레이션된 환경 전체 지표 세트를 보여줍니다. 차트는 AmazonMWAA 네임스페이스(Apache Airflow 지표)와 AWS/MWAA 네임스페이스(컨테이너, 대기열 및 데이터베이스 지표)에서 가져옵니다. 다음 표에는 각 섹션의 차트와 각 섹션에 표시되는 CloudWatch 지표가 나열되어 있습니다.
| 섹션 | 차트 | CloudWatch Metrics |
|---|---|---|
| 컨테이너 | 스케줄러 CPU 사용률 | CPUUtilization |
| 컨테이너 | 스케줄러 메모리 사용률 | MemoryUtilization |
| 컨테이너 | 작업자 CPU 사용률 | CPUUtilization (BaseWorker 및 AdditionalWorker) |
| 컨테이너 | 작업자 메모리 사용률 | MemoryUtilization (BaseWorker 및 AdditionalWorker) |
| 컨테이너 | 웹 서버 CPU 사용률 | CPUUtilization |
| 컨테이너 | 웹 서버 메모리 사용률 | MemoryUtilization |
| 컨테이너 | 실행 중인 작업자 컨테이너 | CPUUtilization 샘플 수에서 파생됨 |
| 컨테이너 | 작업자 하트비트 | CeleryWorkerHeartbeat |
| 데이터베이스 및 대기열 | 데이터베이스 여유 메모리 | FreeableMemory |
| 데이터베이스 및 대기열 | 데이터베이스 CPU 사용률 | CPUUtilization |
| 데이터베이스 및 대기열 | 데이터베이스 연결 | DatabaseConnections |
| 데이터베이스 및 대기열 | 데이터베이스 쓰기 지연 시간 | WriteLatency |
| 데이터베이스 및 대기열 | 가장 오래 대기 중인 작업 수명 | ApproximateAgeOfOldestTask |
| 스케줄러 | 스케줄러 하트비트 | SchedulerHeartbeat |
| 스케줄러 | 스케줄러 중요 섹션 기간 | CriticalSectionDuration |
| 스케줄러 | 스케줄러 작업 상태 | TasksExecutable, TasksStarving, TasksWithoutDagRun |
| 스케줄러 | 외부에서 종료된 작업 | TasksKilledExternally |
| 스케줄러 | 실행기 열린 슬롯 | OpenSlots |
| DAG 처리 | DAG 구문 분석 시간 | TotalParseTime |
| DAG 처리 | DAG 백 크기 | DagBagSize |
| DAG 처리 | DAG 가져오기 오류 | ImportErrors, DAGFileRefreshError |
| DAG 처리 | DAG 프로세서 상태 | ProcessorTimeouts, ManagerStalls |
| 작업 | 작업 대기열 | QueuedTasks, RunningTasks |
| 작업 | 작업 성공 및 실패 | TaskInstanceSuccesses, TaskInstanceFailures |
| 작업 | 좀비 작업이 종료됨 | ZombiesKilled |
| 트리거 | 트리거 하트비트 | TriggererHeartbeat |
| 트리거 | 트리거 결과 | TriggersSucceeded, TriggersFailed |
참고
트리거 차트는 최신 Apache Airflow 버전에만 표시됩니다. 트리거 결과에는 Apache Airflow v2.7.2 이상이 필요하고 트리거 하트비트에는 v2.8.1 이상이 필요합니다.
대시보드에는 환경 전반의 집계 지표가 표시됩니다. Apache Airflow가 DAG, 작업, 풀, 연산자 또는 DAG 파일당 게시하는 높은 카디널리티 지표를 차트로 작성하지 않고 컨테이너 CPU와 메모리를 차트로 작성하지만 모든 컨테이너 지표를 차트로 작성하지는 않습니다. 게시된 지표의 전체 목록은 CloudWatch의 Apache Airflow 환경 지표 및 섹션을 참조하세요Amazon MWAA의 컨테이너, 대기열 및 데이터베이스 지표.
경보 생성 및 모니터링
환경 세부 정보 페이지에는 CloudWatch에서 경보를 생성 및 관리한 다음 컨텍스트에서 모니터링하는 경보 창이 포함되어 있습니다. 창에는 환경에 귀속되는 CloudWatch 경보를 나열하는 환경 경보 테이블이 표시됩니다. CloudWatch Amazon MWAA는 CloudWatch 네임스페이스 및 Environment차원별로 이러한 경보와 일치하므로 테이블에는 권장 경보뿐만 아니라 직접 작성한 경보도 포함됩니다.
창 헤더에는 현재 ALARM 상태에 있는 환경의 경보 수에 대한 In 경보 수가 표시됩니다. 환경 경보 테이블에는 다음 열이 있습니다.
| 이름 | Status | 조건 | 작업 | 최종 업데이트 날짜 |
|---|---|---|---|---|
| CloudWatch 콘솔의 경보에 연결되는 경보 이름입니다. | 경보 상태: 경보 중, 정상 또는 데이터 부족. | 지속 시간 내의 n 데이터 포인트에 대해 로 표시되는 경보 조건입니다. |
SNS 주제 주제 알림과 같은 경보의 작업 또는 경보에 작업이 없는 경우 . |
경보가 마지막으로 업데이트된 날짜와 시간입니다. |
참고
이 표의 경보를 보려면 cloudwatch:DescribeAlarms 권한이 있어야 합니다.
환경에 경보가 없는 경우 환경 경보 테이블이 비어 있고 환경 모니터링을 시작하기 위한 권장 경보를 생성하는 지침을 제공합니다.
경보 창에는 다음과 같은 두 개의 버튼이 있습니다.
-
권장 경보 생성 - 새 탭에서 CloudFormation 빠른 생성 스택을 엽니다. 스택의 이름은 이며 환경에 권장되는 표준 경보 세트를
MWAA-alarms-생성합니다.environment-name -
CloudWatch에서 관리 - CloudWatch 콘솔에서 경보 페이지를 엽니다.
권장 경보를 생성하려면
-
Amazon MWAA 콘솔
을 연 다음 환경을 선택하여 세부 정보 페이지를 엽니다. -
모니터링 보기에서 경보 창을 찾습니다.
-
권장 경보 생성을 선택합니다. CloudFormation 빠른 생성 스택이 새 브라우저 탭에서 열립니다.
-
CloudFormation 콘솔에서 스택을 검토합니다. 메시지가 표시되면 IAM 리소스를 생성할 CloudFormation 수 있는 승인을 선택합니다.
-
스택 생성을 선택합니다.
가 스택을 CloudFormation 생성하면 환경 경보 테이블과 CloudWatch 콘솔에 경보가 나타납니다. 각 경보 상태의 의미에 대한 자세한 내용은 섹션을 참조하세요경보 상태 개요.
권장되는 경보
권장 경보 생성을 선택하면 CloudFormation 템플릿이 다음 경보를 생성합니다. CloudWatch는 5분(300초) 동안 이러한 모든 경보를 평가합니다.
| 경보 | 지표 | 임계값 조건 |
|---|---|---|
| 스케줄러 하트비트 | SchedulerHeartbeat |
데이터 포인트 2개 중 2개에 대한 합계 < 1. 누락된 데이터는 경보에서 로 처리됩니다. |
| 가장 오래 대기 중인 작업 수명 | ApproximateAgeOfOldestTask |
3개의 데이터 포인트 중 3개에 대해 최대 > 1,800초. |
| 스케줄러 CPU 사용률 | CPUUtilization (스케줄러) |
3개의 데이터 포인트 중 3개에 대한 평균 > 95%. |
| 스케줄러 메모리 사용률 | MemoryUtilization (스케줄러) |
3개의 데이터 포인트 중 3개에 대한 평균 > 95%. |
| 작업자 CPU 사용률 | CPUUtilization (BaseWorker) |
6개 데이터 포인트 중 6개에 대한 평균 > 95%. |
| 작업자 메모리 사용률 | MemoryUtilization (BaseWorker) |
6개 데이터 포인트 중 6개에 대한 평균 > 95%. |
| 웹 서버 CPU 사용률 | CPUUtilization (WebServer) |
3개의 데이터 포인트 중 3개에 대한 평균 > 95%. |
| 웹 서버 메모리 사용률 | MemoryUtilization (WebServer) |
3개의 데이터 포인트 중 3개에 대한 평균 > 95%. |
| 데이터베이스 CPU 사용률 | CPUUtilization (작성자) |
3개의 데이터 포인트 중 3개에 대한 평균 > 95%. |
| 데이터베이스 여유 메모리 | FreeableMemory (작성자) |
3개의 데이터 포인트 중 3개에 대한 평균 < 512MiB. |
경보 상태 개요
지표 경보에는 다음과 같은 상태가 있을 수 있습니다.
-
OK– 지표 또는 표현식이 정의된 임곗값 내에 있습니다. -
ALARM– 지표 또는 표현식이 정의된 임곗값을 벗어났습니다. -
INSUFFICIENT_DATA– 경보가 방금 시작되었거나 지표를 사용할 수 없거나 지표에서 경보 상태를 결정하는 데 사용할 수 있는 데이터가 충분하지 않습니다.
사용자 지정 대시보드 및 경보의 예
자체 대시보드와 경보를 코드형 인프라로 정의하여 프로그래밍 방식으로 사용자 지정 대시보드를 구축하거나 여러 Amazon MWAA 환경에서 모니터링을 표준화할 수 있습니다. 환경 세부 정보 페이지의 기본 제공 대시보드 대신 다음 자습서 및 CloudFormation 템플릿은 사용자 지정 모니터링 대시보드를 생성합니다. 이 대시보드에는 Amazon MWAA 환경에 대해 선택한 지표의 차트가 표시됩니다.
이러한 지표에 대한 정보
다음 목록은 이 섹션의 튜토리얼 및 템플릿 정의를 통해 사용자 지정 대시보드에서 만든 각 지표를 설명합니다.
-
QueuedTasks - 대기 상태인 작업의 수입니다.
executor.queued_tasksApache Airflow 지표에 해당합니다. -
TaskSpending - 실행기에서 보류 중인 작업의 수입니다.
scheduler.tasks.pendingApache Airflow 지표에 해당합니다.참고
Apache Airflow v2.2 이상에는 적용되지 않습니다.
-
RunningTasks - 실행기에서 실행 중인 작업의 수입니다.
executor.running_tasksApache Airflow 지표에 해당합니다. -
SchedulerHeartbeat - Apache Airflow가 스케줄러 작업에 대해 수행하는 체크인 수입니다.
scheduler_heartbeatApache Airflow 지표에 해당합니다. -
TotalParseTime - 모든 DAG 파일을 한 번 스캔하고 가져오는 데 걸린 초 단위 시간입니다.
dag_processing.total_parse_timeApache Airflow 지표에 해당합니다.
대시보드 정보
다음 이미지는 이 섹션의 튜토리얼 및 템플릿 정의로 생성된 모니터링 대시보드를 보여줍니다.
자 AWS 습서 사용
다음 AWS 자습서를 사용하여 현재 배포된 모든 Amazon MWAA 환경에 대한 상태 대시보드를 자동으로 생성할 수 있습니다. 또한 모든 Amazon MWAA 환경에서 건강하지 못한 작업자와 스케줄러 하트비트 장애에 대한 CloudWatch 경보를 생성합니다.
사용 CloudFormation
이 섹션의 CloudFormation 템플릿 정의를 사용하여 CloudWatch에서 모니터링 대시보드를 생성한 다음 지표가 특정 임계값을 초과할 때 알림을 수신하도록 CloudWatch 콘솔에 경보를 추가할 수 있습니다. 이 템플릿 정의를 사용하여 스택을 생성하려면 CloudFormation 콘솔에서 스택 생성을 참조하세요. 대시보드에 경보를 추가하려면 경보 사용을 참조하세요.
AWSTemplateFormatVersion: "2010-09-09" Description: Creates MWAA Cloudwatch Dashboard Parameters: DashboardName: Description: Enter the name of the CloudWatch Dashboard Type: String EnvironmentName: Description: Enter the name of the MWAA Environment Type: String Resources: BasicDashboard: Type: AWS::CloudWatch::Dashboard Properties: DashboardName: !Ref DashboardName DashboardBody: Fn::Sub: '{ "widgets": [ { "type": "metric", "x": 0, "y": 0, "width": 12, "height": 6, "properties": { "view": "timeSeries", "stacked": true, "metrics": [ [ "AmazonMWAA", "QueuedTasks", "Function", "Executor", "Environment", "${EnvironmentName}" ] ], "region": "${AWS::Region}", "title": "QueuedTasks ${EnvironmentName}", "period": 300 } }, { "type": "metric", "x": 0, "y": 6, "width": 12, "height": 6, "properties": { "view": "timeSeries", "stacked": true, "metrics": [ [ "AmazonMWAA", "RunningTasks", "Function", "Executor", "Environment", "${EnvironmentName}" ] ], "region": "${AWS::Region}", "title": "RunningTasks ${EnvironmentName}", "period": 300 } }, { "type": "metric", "x": 12, "y": 6, "width": 12, "height": 6, "properties": { "view": "timeSeries", "stacked": true, "metrics": [ [ "AmazonMWAA", "SchedulerHeartbeat", "Function", "Scheduler", "Environment", "${EnvironmentName}" ] ], "region": "${AWS::Region}", "title": "SchedulerHeartbeat ${EnvironmentName}", "period": 300 } }, { "type": "metric", "x": 12, "y": 0, "width": 12, "height": 6, "properties": { "view": "timeSeries", "stacked": true, "metrics": [ [ "AmazonMWAA", "TasksPending", "Function", "Scheduler", "Environment", "${EnvironmentName}" ] ], "region": "${AWS::Region}", "title": "TasksPending ${EnvironmentName}", "period": 300 } }, { "type": "metric", "x": 0, "y": 12, "width": 24, "height": 6, "properties": { "view": "timeSeries", "stacked": true, "region": "${AWS::Region}", "metrics": [ [ "AmazonMWAA", "TotalParseTime", "Function", "DAG Processing", "Environment", "${EnvironmentName}" ] ], "title": "TotalParseTime ${EnvironmentName}", "period": 300 } } ] }'
지표 및 대시보드 삭제
Amazon MWAA 환경을 삭제하면 해당 대시보드도 삭제됩니다. CloudWatch 지표는 15개월 동안 저장되며 삭제할 수 없습니다. CloudWatch 콘솔은 Amazon MWAA 환경에서 가장 최신 인스턴스가 표시되도록 지표 검색 기간을 지표가 마지막으로 수집된 후 2주로 제한합니다. 자세한 내용은 Amazon CloudWatch FAQ
다음 단계
-
환경에 맞게 Amazon Aurora PostgreSQL 메타데이터 데이터베이스를 쿼리하고, 사용자 지정 지표를 CloudWatch에서 DAG를 사용하여 사용자 지정 지표 작성의 CloudWatch에 게시할 DAG를 만드는 방법을 알아봅니다.