

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon Managed Workflows for Apache Airflow에 대한 모니터링 및 지표
<a name="cw-metrics"></a>

모니터링은 Amazon Managed Workflows for Apache Airflow 및 AWS 솔루션의 안정성, 가용성 및 성능을 유지하는 데 중요한 부분입니다. 다중 지점 장애가 발생할 경우 보다 쉽게 디버깅할 수 있도록 AWS 솔루션의 모든 부분에서 모니터링 데이터를 수집하는 것이 좋습니다. 이 주제에서는 Amazon MWAA 환경을 모니터링하고 잠재적 이벤트에 대응하기 위해에서 AWS 제공하는 리소스에 대해 설명합니다.

**참고**  
Apache Airflow 지표 및 로깅에는 표준 Amazon [CloudWatch 요금](https://aws.amazon.com/cloudwatch/pricing/)이 적용됩니다.

Apache Airflow 모니터링에 대한 자세한 내용은 Apache Airflow 문서 웹 사이트의 [로깅 및 모니터링](https://airflow.apache.org/docs/apache-airflow/stable/logging-monitoring/index.html)을 참조하세요.

**Topics**
+ [Amazon MWAA의 모니터링 개요](monitoring-overview.md)
+ [에서 감사 로그 액세스 AWS CloudTrail](monitoring-cloudtrail.md)
+ [Amazon CloudWatch에서 Airflow 로그 액세스](monitoring-airflow.md)
+ [Amazon MWAA의 대시보드 및 알람 모니터링](monitoring-dashboard.md)
+ [CloudWatch의 Apache Airflow 환경 지표](access-metrics-cw.md)
+ [Amazon MWAA의 컨테이너, 대기열 및 데이터베이스 지표](accessing-metrics-cw-container-queue-db.md)

# Amazon MWAA의 모니터링 개요
<a name="monitoring-overview"></a>

이 페이지에서는 Amazon Managed Workflows for Apache Airflow 환경을 모니터링하는 데 사용되는 AWS 서비스를 설명합니다.

**Contents**
+ [Amazon CloudWatch 개요](#monitoring-metrics-cw-about)
+ [AWS CloudTrail 개요](#monitoring-metrics-ct-about)

## Amazon CloudWatch 개요
<a name="monitoring-metrics-cw-about"></a>

CloudWatch는 AWS 서비스에서 게시한 지표 및 [차원](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Dimension)을 기반으로 통계를 검색하는 데 사용할 수 있는 서비스의 [지표](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric) 리포지토리입니다. 이러한 지표를 사용하여 [경보](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#CloudWatchAlarms)를 구성하고 통계를 계산한 다음, Amazon CloudWatch 콘솔에서 환경의 상태를 평가하는 데 도움이 되는 데이터를 [대시보드](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)에 표시할 수 있습니다.

Apache Airflow는 이미 Amazon Managed Workflows for Apache Airflow 환경에 대한 [StatSD](https://github.com/etsy/statsd) 지표를 Amazon CloudWatch로 전송하도록 설정되어 있습니다.

자세한 내용은 [Amazon CloudWatch란 무엇입니까?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)를 참조하세요.

## AWS CloudTrail 개요
<a name="monitoring-metrics-ct-about"></a>

CloudTrail은 Amazon MWAA에서 사용자, 역할 또는 서비스가 수행한 작업에 대한 레코드를 제공하는 감사 AWS 서비스입니다. CloudTrail에서 수집한 정보를 사용하여 Amazon MWAA에 제기된 요청, 요청이 제기된 IP 주소, 요청한 사람, 요청 시간 및 감사 로그에서 이용할 수 있는 추가 세부 정보를 확인할 수 있습니다.

자세한 내용은 [란 무엇입니까 AWS CloudTrail?](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)를 참조하세요.

# 에서 감사 로그 액세스 AWS CloudTrail
<a name="monitoring-cloudtrail"></a>

AWS CloudTrail 는를 생성할 AWS 계정 때에서 활성화됩니다. CloudTrail은 CloudTrail 이벤트로 기록되는 Amazon Managed Workflows for Apache Airflow와 같은 IAM 엔터티 또는 AWS 서비스가 수행한 활동을 기록합니다. CloudTrail 콘솔에서 지난 90일 동안의 이벤트 기록을 확인, 검색 및 다운로드할 수 있습니다. CloudTrail은 Amazon MWAA 콘솔의 모든 이벤트와 Amazon MWAA API에 대한 모든 직접 호출을 캡처합니다. `GetEnvironment` 또는 `PublishMetrics` 작업과 같은 읽기 전용 작업은 캡처하지 않습니다. 이 페이지에서는 CloudTrail을 사용하여 Amazon MWAA에 대한 이벤트를 모니터링하는 방법을 설명합니다.

**Contents**
+ [CloudTrail에서의 추적 생성](#monitoring-cloudtrail-create)
+ [CloudTrail 이벤트 기록에서 이벤트 액세스](#monitoring-cloudtrail-view)
+ [`CreateEnvironment`의 트레일 예시](#monitoring-cloudtrail-logs-ex)
+ [다음 단계](#monitoring-cloudtrail-next-up)

## CloudTrail에서의 추적 생성
<a name="monitoring-cloudtrail-create"></a>

Amazon MWAA 이벤트를 AWS 계정포함하여에서 진행 중인 이벤트 레코드에 액세스하려면 추적을 생성해야 합니다. CloudTrail은 추적을 사용하여 Amazon S3 버킷으로 로그 파일을 전송할 수 있습니다. 추적을 생성하지 않은 경우에도 CloudTrail 콘솔에서 사용 가능한 이벤트 기록을 액세스할 수 있습니다. 예를 들면, CloudTrail에서 수집한 정보를 사용하여 Amazon MWAA에 제기된 요청, 요청이 제기된 IP 주소, 요청한 사람, 요청 시간 및 추가 세부 정보를 확인할 수 있습니다. 자세한 내용은 [AWS 계정에 대한 추적 생성](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)을 참조하세요.

## CloudTrail 이벤트 기록에서 이벤트 액세스
<a name="monitoring-cloudtrail-view"></a>

CloudTrail 콘솔에서 이벤트 기록을 확인하여 지난 90일 동안의 운영 및 보안 인시던트 문제를 해결할 수 있습니다. 예를 들어 리전별로에서 리소스(예: IAM 사용자 또는 기타 AWS 리소스)의 생성, 수정 또는 삭제 AWS 계정 와 관련된 이벤트에 액세스할 수 있습니다. 자세한 내용은 [CloudTrail 이벤트 기록을 사용하여 이벤트 액세스](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)를 참조하세요.

1. [CloudTrail 콘솔](https://console.aws.amazon.com/cloudtrail/home#)을 엽니다.

1. **이벤트 기록**을 선택합니다.

1. 보고자 하는 이벤트를 선택한 다음, **이벤트 세부 정보 비교**를 선택합니다.

## `CreateEnvironment`의 트레일 예시
<a name="monitoring-cloudtrail-logs-ex"></a>

트레일이란 지정한 S3 버킷에 이벤트를 로그 파일로 입력할 수 있게 하는 구성입니다.

CloudTrail 로그 파일에는 하나 이상의 로그 항목이 포함될 수 있습니다. 이벤트는 모든 소스로부터의 단일 요청을 나타내며, 작업 날짜와 시간, 요청 파라미터 등 요청 작업에 관한 정보가 포함되어 있습니다. CloudTrail 로그 파일은 퍼블릭 API 호출에 대해 순서가 지정된 스택 추적이 아니며 특정 순서로 나열되지 않습니다. 다음 예는 권한 부족으로 인해 거부된 `CreateEnvironment` 작업에 대한 로그 항목입니다. `AirflowConfigurationOptions`의 값은 개인 정보 보호를 위해 수정된 것입니다.

```
{
  "eventVersion": "1.05",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "00123456ABC7DEF8HIJK",
    "arn": "arn:aws:sts::012345678901:assumed-role/root/myuser",
    "accountId": "012345678901",
    "accessKeyId": "",
    "sessionContext": {
      "sessionIssuer": {
        "type": "Role",
        "principalId": "00123456ABC7DEF8HIJK",
        "arn": "arn:aws:iam::012345678901:role/user",
        "accountId": "012345678901",
        "userName": "user"
      },
      "webIdFederationData": {},
      "attributes": {
        "mfaAuthenticated": "false",
        "creationDate": "2020-10-07T15:51:52Z"
      }
    }
  },
  "eventTime": "2020-10-07T15:52:58Z",
  "eventSource": "airflow.amazonaws.com",
  "eventName": "CreateEnvironment",
  "awsRegion": "us-west-2",
  "sourceIPAddress": "205.251.233.178",
  "userAgent": "PostmanRuntime/7.26.5",
  "errorCode": "AccessDenied",
  "requestParameters": {
    "SourceBucketArn": "arn:aws:s3:::my-bucket",
    "ExecutionRoleArn": "arn:aws:iam::012345678901:role/AirflowTaskRole",
    "AirflowConfigurationOptions": "***",
    "DagS3Path": "sample_dag.py",
    "NetworkConfiguration": {
      "SecurityGroupIds": [
      "sg-01234567890123456"
      ],
      "SubnetIds": [
        "subnet-01234567890123456",
        "subnet-65432112345665431"
      ]
    },
    "Name": "test-cloudtrail"
  },
  "responseElements": {
    "message": "Access denied."
  },
  "requestID": "RequestID",
  "eventID": "EventID",
  "readOnly": false,
  "eventType": "AwsApiCall",
  "recipientAccountId": "012345678901"
}
```

## 다음 단계
<a name="monitoring-cloudtrail-next-up"></a>
+ CloudTrail 지원 AWS 서비스 및 통합의 CloudTrail 로그에서 수집된 이벤트 데이터에 대해 다른 서비스를 구성하는 방법을 알아봅니다. [CloudTrail ](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ CloudTrail이 Amazon S3 버킷에 새 로그 파일을 게시할 때 이에 대한 알림을 받는 방법을 [CloudTrail에 대한 Amazon SNS 알림 구성](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/getting_notifications_top_level.html)에서 알아봅니다.

# Amazon CloudWatch에서 Airflow 로그 액세스
<a name="monitoring-airflow"></a>

Amazon MWAA는 Amazon CloudWatch에 Apache Airflow 로그를 전송할 수 있습니다. 추가적인 타사 도구 없이도 단일 위치에서 여러 환경의 로그에 액세스하여 Apache Airflow 작업 지연 또는 워크플로 오류를 쉽게 식별할 수 있습니다. CloudWatch에서 Apache Airflow DAG 프로세싱, 작업, 웹 서버, 작업자 로그에 액세스하려면 Amazon Managed Workflows for Apache Airflow 콘솔에서 Apache Airflow 로그를 활성화해야 합니다.

**Contents**
+ [가격 책정](#monitoring-airflow-pricing)
+ [시작하기 전 준비 사항](#monitoring-airflow-before)
+ [로그 유형](#monitoring-airflow-log-groups)
+ [Apache Airflow 로그 활성화](#monitoring-airflow-enable)
+ [Apache Airflow 로그 액세스](#monitoring-airflow-view)
+ [스케줄러 로그 예제](#monitoring-airflow-example)
+ [다음 단계](#monitoring-airflow-next-up)

## 가격 책정
<a name="monitoring-airflow-pricing"></a>
+ 표준 CloudWatch Log 요금이 적용됩니다. 자세한 내용은 [CloudWatch 요금](https://aws.amazon.com/cloudwatch/pricing/)을 참조하세요.

## 시작하기 전 준비 사항
<a name="monitoring-airflow-before"></a>
+ CloudWatch에서 로그에 액세스할 수 있는 역할이 있어야 합니다. 자세한 정보는 [Amazon MWAA 환경 액세스](access-policies.md) 섹션을 참조하세요.

## 로그 유형
<a name="monitoring-airflow-log-groups"></a>

Amazon MWAA는 사용자가 활성화한 각 Airflow 로깅 옵션에 대한 로그 그룹을 생성하고 해당 로그를 환경과 관련된 CloudWatch Logs 그룹에 푸시합니다. 로그 그룹의 이름은 다음 형식으로 명명됩니다: `YourEnvironmentName-LogType`. 예를 들어, 환경 이름이 `Airflow-v202-Public`으로 명명되면 Apache Airflow 작업 로그가 `Airflow-v202-Public-Task`로 전송됩니다.


| 로그 유형 | 설명 | 
| --- | --- | 
|  `YourEnvironmentName-DAGProcessing`  |  DAG 프로세서 관리자(DAG 파일을 처리하는 스케줄러의 일부)의 로그.  | 
|  `YourEnvironmentName-Scheduler`  |  Airflow 스케줄러가 생성하는 로그입니다.  | 
|  `YourEnvironmentName-Task`  |  DAG가 생성하는 작업 로그입니다.  | 
|  `YourEnvironmentName-WebServer`  |  Airflow 웹 인터페이스가 생성하는 로그입니다.  | 
|  `YourEnvironmentName-Worker`  |  워크플로 및 DAG 실행의 일부로 생성된 로그입니다.  | 

## Apache Airflow 로그 활성화
<a name="monitoring-airflow-enable"></a>

`INFO`, `WARNING`, `ERROR`, 또는 `CRITICAL` 수준에서 Apache Airflow 로그를 활성화할 수 있습니다. 로그 수준을 선택하면 Amazon MWAA에서 해당 수준 및 더 높은 모든 심각도 수준에 대한 로그를 전송합니다. 예를 들어, `INFO` 수준에서 로그를 활성화하면 Amazon MWAA는 `INFO` 로그 및 `WARNING`, `ERROR`, `CRITICAL` 로그 수준을 CloudWatch Log로 보냅니다.

1. Amazon MWAA 콘솔에서 [환경 페이지](https://console.aws.amazon.com/mwaa/home#/environments)를 엽니다.

1. 환경을 선택합니다.

1. **편집**을 선택합니다.

1. **다음**을 선택합니다.

1. 다음 로깅 옵션 중 하나 이상을 선택합니다.

   1. **모니터링 창**에서 **Airflow 스케줄러 로그 그룹**을 선택합니다.

   1. **모니터링** 창에서 **Airflow 웹 서버 로그 그룹**을 선택합니다.

   1. **모니터링** 창에서 **Airflow 작업자 로그 그룹**을 선택합니다.

   1. **모니터링 창**에서 **Airflow DAG 프로세싱 로그 그룹**을 선택합니다.

   1. **모니터링 창**에서 **Airflow 작업 로그 그룹**을 선택합니다.

   1. **로그 수준**에서 로깅 수준을 선택합니다.

1. **다음**을 선택합니다.

1. **저장**을 선택합니다.

## Apache Airflow 로그 액세스
<a name="monitoring-airflow-view"></a>

다음 섹션에서는 CloudWatch 콘솔에서 Apache Airflow 로그에 액세스하는 방법을 설명합니다.

1. Amazon MWAA 콘솔에서 [환경 페이지](https://console.aws.amazon.com/mwaa/home#/environments)를 엽니다.

1. 환경을 선택합니다.

1. **모니터링** 창에서 로그 그룹을 선택합니다.

1. **로그 스트림**을 선택합니다.

## 스케줄러 로그 예제
<a name="monitoring-airflow-example"></a>

워크플로우를 예약하고 `dags` 폴더를 구문 분석하는 스케줄러에 대한 Apache Airflow 로그를 액세스할 수 있습니다. 다음 단계에서는 Amazon MWAA 콘솔에서 스케줄러에 대한 로그 그룹을 여는 방법과 CloudWatch Logs 콘솔에서 Apache Airflow 로그를 액세스하는 방법을 설명합니다.

**`requirements.txt`에 대한 로그에 액세스하려면**

1. Amazon MWAA 콘솔에서 [환경 페이지](https://console.aws.amazon.com/mwaa/home#/environments)를 엽니다.

1. 환경을 선택합니다.

1. **모니터링** 창에서 **Airflow 스케줄러 로그 그룹**을 선택합니다.

1. **로그 스트림**에서 `requirements_install_ip` 로그를 선택합니다.

1. `/usr/local/airflow/.local/bin`에서 환경에 설치된 패키지 목록을 참조하세요. 예제:

   ```
   Collecting appdirs==1.4.4 (from -r /usr/local/airflow/.local/bin (line 1))
   Downloading https://files.pythonhosted.org/packages/3b/00/2344469e2084fb28kjdsfiuyweb47389789vxbmnbjhsdgf5463acd6cf5e3db69324/appdirs-1.4.4-py2.py3-none-any.whl  
   Collecting astroid==2.4.2 (from -r /usr/local/airflow/.local/bin (line 2))
   ```

1. 패키지 목록을 검토하고 설치 중에 오류가 발생했는지 여부를 검토합니다. 문제가 발생한 경우, 다음과 비슷한 오류가 표시될 수 있습니다.

   ```
   2021-03-05T14:34:42.731-07:00
   No matching distribution found for LibraryName==1.0.0 (from -r /usr/local/airflow/.local/bin (line 4))
   No matching distribution found for LibraryName==1.0.0 (from -r /usr/local/airflow/.local/bin (line 4))
   ```

## 다음 단계
<a name="monitoring-airflow-next-up"></a>
+ [Amazon CloudWatch 경보 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)에서 CloudWatch 경보를 구성하는 방법을 알아봅니다.
+ [CloudWatch 대시보드 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)에서 CloudWatch 대시보드를 생성하는 방법을 알아봅니다.

# Amazon MWAA의 대시보드 및 알람 모니터링
<a name="monitoring-dashboard"></a>

Amazon CloudWatch에서 사용자 지정 대시보드를 생성하고 특정 지표에 대한 경보를 추가하여 Amazon Managed Workflows for Apache Airflow 환경의 상태를 모니터링할 수 있습니다. 대시보드에 경보가 표시되면 `ALARM` 상태일 때 빨간색으로 표시되기 때문에 Amazon MWAA의 상태를 사전에 손쉽게 모니터링할 수 있습니다.

Apache Airflow는 DAG 프로세스 수, DAG 백 크기, 현재 실행 중인 작업, 작업 실패, 성공을 포함한 몇 가지 프로세스에 대한 지표를 공개합니다. 환경을 생성할 때 Airflow는 Amazon MWAA 환경에 대한 지표를 CloudWatch에 자동으로 전송합니다. 이 페이지에서는 Amazon MWAA 환경을 위한 CloudWatch에서 Airflow 지표에 대한 상태 대시보드를 생성하는 방법을 설명합니다.

**Contents**
+ [Metrics](#monitoring-dashboard-metrics)
+ [경보 상태 개요](#monitoring-dashboard-states)
+ [사용자 지정 대시보드 및 경보의 예](#monitoring-dashboard-custom)
  + [이러한 지표에 대한 정보](#monitoring-dashboard-custom-about)
  + [대시보드 정보](#monitoring-dashboard-custom-about-dash)
  + [자 AWS 습서 사용](#monitoring-dashboard-tutorials)
  + [사용 CloudFormation](#monitoring-dashboard-cfn)
+ [지표 및 대시보드 삭제](#monitoring-dashboard-delete)
+ [다음 단계](#monitoring-dashboard-next-up)

## Metrics
<a name="monitoring-dashboard-metrics"></a>

Apache Airflow 버전에서 사용할 수 있는 모든 지표에 대해 사용자 지정 대시보드 및 경보를 생성할 수 있습니다. 각 지표는 Apache Airflow 핵심 성과 지표(KPI) 에 해당합니다. 지표 목록에 액세스하려면 다음을 참조하세요.
+ [CloudWatch의 Apache Airflow 환경 지표](access-metrics-cw.md)

## 경보 상태 개요
<a name="monitoring-dashboard-states"></a>

지표 경보에는 다음과 같은 상태가 있을 수 있습니다.
+ `OK` – 지표 또는 표현식이 정의된 임곗값 내에 있습니다.
+ `ALARM` – 지표 또는 표현식이 정의된 임곗값을 벗어났습니다.
+ `INSUFFICIENT_DATA` – 경보가 방금 시작되었거나 지표를 사용할 수 없거나 지표에서 경보 상태를 결정하는 데 사용할 수 있는 데이터가 충분하지 않습니다.

## 사용자 지정 대시보드 및 경보의 예
<a name="monitoring-dashboard-custom"></a>

Amazon MWAA 환경에서 선택한 지표의 차트를 표시하는 사용자 지정 모니터링 대시보드를 구축할 수 있습니다.

### 이러한 지표에 대한 정보
<a name="monitoring-dashboard-custom-about"></a>

다음 목록은 이 섹션의 튜토리얼 및 템플릿 정의를 통해 사용자 지정 대시보드에서 만든 각 지표를 설명합니다.
+ *QueuedTasks* - 대기 상태인 작업의 수입니다. `executor.queued_tasks` Apache Airflow 지표에 해당합니다.
+ *TaskSpending* - 실행기에서 보류 중인 작업의 수입니다. `scheduler.tasks.pending` Apache Airflow 지표에 해당합니다.
**참고**  
Apache Airflow v2.2 이상에는 적용되지 않습니다.
+ *RunningTasks* - 실행기에서 실행 중인 작업의 수입니다. `executor.running_tasks` Apache Airflow 지표에 해당합니다.
+ *SchedulerHeartbeat* - Apache Airflow가 스케줄러 작업에 대해 수행하는 체크인 수입니다. `scheduler_heartbeat` Apache Airflow 지표에 해당합니다. 
+ *TotalParseTime* - 모든 DAG 파일을 한 번 스캔하고 가져오는 데 걸린 초 단위 시간입니다. `dag_processing.total_parse_time` Apache Airflow 지표에 해당합니다.

### 대시보드 정보
<a name="monitoring-dashboard-custom-about-dash"></a>

다음 이미지는 이 섹션의 튜토리얼 및 템플릿 정의로 생성된 모니터링 대시보드를 보여줍니다.

![\[이 이미지는 Amazon MWAA 콘솔에서 프라이빗 네트워크 옵션을 찾을 수 있는 위치를 보여줍니다.\]](http://docs.aws.amazon.com/ko_kr/mwaa/latest/userguide/images/cw-dashboard.png)


### 자 AWS 습서 사용
<a name="monitoring-dashboard-tutorials"></a>

다음 AWS 자습서를 사용하여 현재 배포된 모든 Amazon MWAA 환경에 대한 상태 대시보드를 자동으로 생성할 수 있습니다. 또한 모든 Amazon MWAA 환경에서 건강하지 못한 작업자와 스케줄러 하트비트 장애에 대한 CloudWatch 경보를 생성합니다.
+ [Amazon MWAA를 위한 CloudWatch 대시보드 자동화](https://github.com/aws-samples/mwaa-dashboard)

### 사용 CloudFormation
<a name="monitoring-dashboard-cfn"></a>

이 섹션의 CloudFormation 템플릿 정의를 사용하여 CloudWatch에서 모니터링 대시보드를 생성한 다음 지표가 특정 임계값을 초과할 때 알림을 수신하도록 CloudWatch 콘솔에 경보를 추가할 수 있습니다. 이 템플릿 정의를 사용하여 스택을 생성하려면 [CloudFormation 콘솔에서 스택 생성을 참조하세요](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). 대시보드에 경보를 추가하려면 [경보 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)을 참조하세요.

```
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
                      }
                  }
              ]
          }'
```

## 지표 및 대시보드 삭제
<a name="monitoring-dashboard-delete"></a>

Amazon MWAA 환경을 삭제하면 해당 대시보드도 삭제됩니다. CloudWatch 지표는 15개월 동안 저장되며 삭제할 수 없습니다. CloudWatch 콘솔은 Amazon MWAA 환경에서 가장 최신 인스턴스가 표시되도록 지표 검색 기간을 지표가 마지막으로 수집된 후 2주로 제한합니다. 자세한 내용은 [Amazon CloudWatch FAQ](https://aws.amazon.com/cloudwatch/faqs/)를 참조하세요.

## 다음 단계
<a name="monitoring-dashboard-next-up"></a>
+ 환경에 맞게 Amazon Aurora PostgreSQL 메타데이터 데이터베이스를 쿼리하고, 사용자 지정 지표를 [CloudWatch에서 DAG를 사용하여 사용자 지정 지표 작성](samples-custom-metrics.md)의 CloudWatch에 게시할 DAG를 만드는 방법을 알아봅니다.

# CloudWatch의 Apache Airflow 환경 지표
<a name="access-metrics-cw"></a>

Apache Airflow v2 및 v3는 이미 Amazon Managed Workflows for Apache Airflow 환경에 대한 [StatSD](https://github.com/etsy/statsd) 지표를 수집하여 Amazon CloudWatch로 전송하도록 설정되어 있습니다. Apache Airflow가 전송하는 지표의 전체 목록은 *Apache Airflow 참조 가이드*의 [지표](https://airflow.apache.org/docs/apache-airflow/stable/administration-and-deployment/logging-monitoring/metrics.html) 페이지에서 확인할 수 있습니다. 이 페이지에서는 CloudWatch에서 사용할 수 있는 Apache Airflow 지표와 CloudWatch 콘솔에서 지표에 액세스하는 방법을 설명합니다.

**Contents**
+ [용어](#access-metrics-cw-terms)
+ [측정 기준](#metrics-dimensions)
+ [CloudWatch 콘솔의 지표 액세스](#access-metrics-cw-console)
+ [CloudWatch에서 사용할 수 있는 Apache Airflow 지표](#available-metrics-cw)
  + [Apache Airflow 카운터](#counters-metrics)
  + [Apache Airflow 게이지](#gauges-metrics)
  + [Apache Airflow 타이머](#timers-metrics)
+ [보고할 지표 선택](#choosing-metrics)
+ [다음 단계](#mwaa-metrics202-next-up)

## 용어
<a name="access-metrics-cw-terms"></a>

**네임스페이스**  
네임스페이스는 AWS 서비스의 CloudWatch 지표를 위한 컨테이너입니다. Amazon MWAA의 경우 네임스페이스는 *AmazonMWAA*입니다.

**CloudWatch 지표**  
CloudWatch 지표는 CloudWatch에 고유한 시간 순서별 데이터 포인트 세트를 나타냅니다.

**Apache Airflow 지표**  
Apache Airflow 전용 [지표](https://airflow.apache.org/docs/apache-airflow/stable/administration-and-deployment/logging-monitoring/metrics.html )

**측정 기준**  
차원은 지표의 보안 인증에 속하는 명칭/값 쌍입니다.

**단위**  
통계에는 측정 단위가 포함되어 있습니다. Amazon MWAA의 경우, 단위에는 *개수*, *초*, *밀리초*가 포함됩니다. Amazon MWAA의 경우, 단위는 원래의 Airflow 지표의 단위를 기반으로 설정됩니다.

## 측정 기준
<a name="metrics-dimensions"></a>

이 섹션에서는 CloudWatch의 Apache Airflow 지표에 사용되는 CloudWatch *차원*을 그룹화하는 방법에 대해 설명합니다.


| 차원 | 설명 | 
| --- | --- | 
|  DAG  |  특정 Apache Airflow DAG 이름을 나타냅니다.  | 
|  DAG 파일 이름  |  특정 Apache Airflow DAG 파일 이름을 나타냅니다.  | 
|  함수  |  이 차원은 CloudWatch의 지표 그룹화를 개선하는 데 사용됩니다.  | 
|  작업  |  스케줄러가 실행하는 Apache Airflow 작업을 나타냅니다. 항상 `Job`의 값을 갖습니다.  | 
|  연산자  |  특정 Apache Airflow 연산자를 나타냅니다.  | 
|  풀  |  특정 Apache Airflow 작업자 풀을 나타냅니다.  | 
|  작업  |  특정 Apache Airflow 작업을 나타냅니다.  | 
|  HostName  |  실행 중인 특정 Apache Airflow 프로세스의 호스트 이름을 나타냅니다.  | 

## CloudWatch 콘솔의 지표 액세스
<a name="access-metrics-cw-console"></a>

이 섹션에서는 CloudWatch에서 특정 DAG의 성능 지표에 액세스하는 방법을 설명합니다.

**차원에 대한 성능 지표에 액세스하려면**

1. CloudWatch 콘솔에서 [지표 페이지](https://console.aws.amazon.com/cloudwatch/home#metricsV2:graph=~())를 엽니다.

1. 를 선택합니다 AWS 리전.

1. **Amazon MWAA** 네임스페이스를 선택합니다.

1. **모든 지표** 탭에서 차원을 선택합니다. 예: *DAG, 환경*

1. 차원에 대한 CloudWatch 지표를 선택합니다. 예: *TaskInstanceSuccesses* 또는 *TaskInstanceDuration* **모든 검색 결과를 그래프로 표시**를 선택합니다.

1. **그래프 지표** 탭을 선택하면 *DAG, 환경, 작업*과 같은 Apache Airflow 지표에 대한 성능 통계에 액세스할 수 있습니다.

## CloudWatch에서 사용할 수 있는 Apache Airflow 지표
<a name="available-metrics-cw"></a>

이 섹션에서는 CloudWatch로 전송되는 Apache Airflow 지표 및 차원에 대해 설명합니다.

### Apache Airflow 카운터
<a name="counters-metrics"></a>

이 섹션의 Apache Airflow 지표에는 [Apache Airflow *카운터*](https://airflow.apache.org/docs/apache-airflow/stable/administration-and-deployment/logging-monitoring/metrics.html#counters)에 대한 데이터가 포함되어 있습니다.


| CloudWatch 지표 | Apache Airflow 지표 | 단위 | 측정 기준 | 
| --- | --- | --- | --- | 
|  SLAMissed  Apache Airflow v2.4.3\$1v2.10.3에서만 사용할 수 있습니다.   |  sla\$1missed  |  개수  |  함수, 스케줄러  | 
|  FailedSLACallback  Apache Airflow v2.4.3\$1v2.10.3에서만 사용할 수 있습니다.   |  sla\$1callback\$1notification\$1failure  |  개수  |  함수, 스케줄러  | 
|  업데이트  Apache Airflow v2.6.3 이상에서 사용 가능.   |  dataset.updates  |  개수  |  함수, 스케줄러  | 
|  Orphaned  Apache Airflow v2.6.3 이상에서 사용 가능.   |  dataset.orphaned  |  개수  |  함수, 스케줄러  | 
|  FailedCeleryTaskExecution  Apache Airflow v2.4.3 이상에서 사용 가능.   |  celery.execute\$1command.failure  |  개수  |  함수, Celery  | 
|  FilePathQueueUpdateCount  Apache Airflow v2.6.3 이상에서 사용 가능.   |  dag\$1processing.file\$1path\$1queue\$1update\$1count  |  개수  |  함수, 스케줄러  | 
|  CriticalSectionBusy  |  scheduler.critical\$1section\$1busy  |  개수  |  함수, 스케줄러  | 
|  DagBagSize  |  dagbag\$1size  |  개수  |  함수, DAG 프로세싱   | 
|  DagCallbackExceptions  |  dag.callback\$1exceptions  |  개수  |  DAG, 모두   | 
|  FailedSLAEmailAttempts  Apache Airflow v3.0.6 이상에서 사용 불가.   |  sla\$1email\$1notification\$1failure  |  개수  |  함수, 스케줄러  | 
|  TaskInstanceFinished  |  ti.finish.\$1dag\$1id\$1.\$1task\$1id\$1.\$1state\$1  |  개수  |  DAG, \$1dag\$1id\$1 작업, \$1task\$1id\$1 상태, \$1state\$1  | 
|  JobEnd  |  \$1job\$1name\$1\$1end  |  개수  |  작업, \$1job\$1name\$1  | 
|  JobHeartbeatFailure  |  \$1job\$1name\$1\$1heartbeat\$1failure  |  개수  |  작업, \$1job\$1name\$1  | 
|  JobStart  |  \$1job\$1name\$1\$1start  |  개수  |  작업, \$1job\$1name\$1  | 
|  ManagerStalls  |  dag\$1processing.manager\$1stalls  |  개수  |  함수, DAG 프로세싱   | 
|  OperatorFailures  |  operator\$1failures\$1\$1operator\$1name\$1  |  개수  |  연산자, \$1operator\$1name\$1  | 
|  OperatorSuccesses  |  operator\$1successes\$1\$1operator\$1name\$1  |  개수  |  연산자, \$1operator\$1name\$1  | 
|  OtherCallbackCount  Apache Airflow v2.6.3 이상에서 사용 가능.   |  dag\$1processing.other\$1callback\$1count  |  개수  |  함수, 스케줄러  | 
|  프로세스  |  dag\$1processing.processes  |  개수  |  함수, DAG 프로세싱   | 
|  SchedulerHeartbeat  |  scheduler\$1heartbeat  |  개수  |  함수, 스케줄러  | 
|  StartedTaskInstances  |  ti.start.\$1dag\$1id\$1.\$1task\$1id\$1  |  개수  |  DAG, 모두  작업, 모두  | 
|  SlaCallbackCount  |  dag\$1processing.sla\$1callback\$1count  Apache Airflow v2.6.3 이상에서 사용 가능.   |  개수  |  함수, 스케줄러  | 
|  TasksKilledExternally  |  scheduler.tasks.killed\$1externally  |  개수  |  함수, 스케줄러  | 
|  TaskTimeoutError  |  celery.task\$1timeout\$1error  |  개수  |  함수, Celery  | 
|  TaskInstanceCreatedUsingOperator  |  task\$1instance\$1created-\$1operator\$1name\$1  |  개수  |  연산자, \$1operator\$1name\$1  | 
|  TaskInstancePreviouslySucceeded  |  previously\$1succeeded  |  개수  |  DAG, 모두  작업, 모두  | 
|  TaskInstanceFailures  |  ti\$1failures  |  개수  |  DAG, 모두  작업, 모두  | 
|  TaskInstanceSuccesses  |  ti\$1successes  |  개수  |  DAG, 모두  작업, 모두  | 
|  TaskRemovedFromDAG  |  task\$1removed\$1from\$1dag.\$1dag\$1id\$1  |  개수  |  DAG, \$1dag\$1id\$1  | 
|  TaskRestoredToDAG  |  task\$1restored\$1to\$1dag.\$1dag\$1id\$1  |  개수  |  DAG, \$1dag\$1id\$1  | 
|  TriggersSucceeded  Apache Airflow v2.7.2 이상에서 사용 가능.   |  triggers.succeeded  |  개수  |  함수, 트리거  | 
|  TriggersFailed  Apache Airflow v2.7.2 이상에서 사용 가능.   |  triggers.failed  |  개수  |  함수, 트리거  | 
|  TriggersBlockedMainThread  Apache Airflow v2.7.2 이상에서 사용 가능.   |  triggers.blocked\$1main\$1thread  |  개수  |  함수, 트리거  | 
|  TriggerHeartbeat  Apache Airflow v2.8.1 이상에서 사용 가능.   |  triggerer\$1heartbeat  |  개수  |  함수, 트리거러  | 
|  TaskInstanceCreatedUsingOperator  |  airflow.task\$1instance\$1created\$1`{operator_name}`  Apache Airflow v2.7.2 이상에서 사용 가능.   |  개수  |  연산자, `{operator_name}`   | 
|  ZombiesKilled  |  zombies\$1killed  |  개수  |  DAG, 모두  작업, 모두  | 

### Apache Airflow 게이지
<a name="gauges-metrics"></a>

[이 섹션의 Apache Airflow 지표에는 Apache Airflow *게이지*에 대한 데이터가 포함되어 있습니다](https://airflow.apache.org/docs/apache-airflow/stable/administration-and-deployment/logging-monitoring/metrics.html#gauges).


| CloudWatch 지표 | Apache Airflow 지표 | 단위 | 측정 기준 | 
| --- | --- | --- | --- | 
|  DAGFileRefreshError  |  dag\$1file\$1refresh\$1error  |  개수  |  함수, DAG 프로세싱   | 
|  ImportErrors  |  dag\$1processing.import\$1errors  |  개수  |  함수, DAG 프로세싱   | 
|  ExceptionFailures  |  smart\$1sensor\$1operator.exception\$1failures  |  개수  |  함수, 스마트 센서 연산자   | 
|  ExecutedTasks  |  smart\$1sensor\$1operator.executed\$1tasks  |  개수  |  함수, 스마트 센서 연산자   | 
|  InfraFailures  |  smart\$1sensor\$1operator.infra\$1failures  |  개수  |  함수, 스마트 센서 연산자   | 
|  LoadedTasks  |  smart\$1sensor\$1operator.loaded\$1tasks  |  개수  |  함수, 스마트 센서 연산자   | 
|  TotalParseTime  |  dag\$1processing.total\$1parse\$1time  |  초  |  함수, DAG 프로세싱   | 
|  TriggeredDagRuns  Apache Airflow v2.6.3 이상에서 사용 가능.   |  dataset.triggered\$1dagruns  |  개수  |  함수, 스케줄러  | 
|  TriggersRunning  Apache Airflow v2.7.2 이상에서 사용 가능.   |  triggers.running.*\$1hostname\$1*  |  개수  |  함수, 트리거 호스트 이름, *\$1hostname\$1*  | 
|  PoolDeferredSlots  Apache Airflow v2.7.2 이상에서 사용 가능.   |  pool.deferred\$1slots. `{pool_name}`   |  개수  |  풀, \$1pool\$1name\$1  | 
|  DAGFileProcessingLastRunSecondsAgo  |  dag\$1processing.last\$1run.seconds\$1ago.\$1dag\$1filename\$1  |  초  |  DAG 파일 이름, \$1dag\$1filename\$1  | 
|  OpenSlots  |  executor.open\$1slots  |  개수  |  함수, 실행기   | 
|  OrphanedTasksAdopted  |  scheduler.orphaned\$1tasks.adopted  |  개수  |  함수, 스케줄러  | 
|  OrphanedTasksCleared  |  scheduler.orphaned\$1tasks.cleared  |  개수  |  함수, 스케줄러  | 
|  PokedExceptions  |  smart\$1sensor\$1operator.poked\$1exception  |  개수  |  함수, 스마트 센서 연산자   | 
|  PokedSuccess  |  smart\$1sensor\$1operator.poked\$1success  |  개수  |  함수, 스마트 센서 연산자   | 
|  PokedTasks  |  smart\$1sensor\$1operator.poked\$1tasks  |  개수  |  함수, 스마트 센서 연산자   | 
|  PoolFailures  |  pool.open\$1slots.\$1pool\$1name\$1  |  개수  |  풀, \$1pool\$1name\$1  | 
|  PoolStarvingTasks  |  pool.starving\$1tasks.\$1pool\$1name\$1  |  개수  |  풀, \$1pool\$1name\$1  | 
|  PoolOpenSlots  |  pool.open\$1slots.\$1pool\$1name\$1  |  개수  |  풀, \$1pool\$1name\$1  | 
|  PoolQueuedSlots  |  pool.queued\$1slots.\$1pool\$1name\$1  |  개수  |  풀, \$1pool\$1name\$1  | 
|  PoolRunningSlots  |  pool.running\$1slots.\$1pool\$1name\$1  |  개수  |  풀, \$1pool\$1name\$1  | 
|  ProcessorTimeouts  |  dag\$1processing.processor\$1timeouts  |  개수  |  함수, DAG 프로세싱   | 
|  QueuedTasks  |  executor.queued\$1tasks  |  개수  |  함수, 실행기   | 
|  RunningTasks  |  executor.running\$1tasks  |  개수  |  함수, 실행기   | 
|  TasksExecutable  |  scheduler.tasks.executable  |  개수  |  함수, 스케줄러  | 
|  TasksPending  Apache Airflow v2.2 이상에는 적용되지 않습니다.   |  scheduler.tasks.pending  |  개수  |  함수, 스케줄러  | 
|  TasksRunning  |  scheduler.tasks.running  |  개수  |  함수, 스케줄러  | 
|  TasksStarving  |  scheduler.tasks.starving  |  개수  |  함수, 스케줄러  | 
|  TasksWithoutDagRun  |  scheduler.tasks.without\$1dagrun  |  개수  |  함수, 스케줄러  | 
|  DAGFileProcessingLastNumOfDbQueries  Apache Airflow v2.10.1 이상에서 사용 가능  |  dag\$1processing.last\$1num\$1of\$1db\$1queries.\$1dag\$1filename\$1  |  개수  |  DAG 파일 이름, \$1dag\$1filename\$1  | 
|  PoolScheduledSlots  Apache Airflow v2.10.1 이상에서 사용 가능   |  pool.scheduled\$1slots.\$1pool\$1name\$1  |  개수  |  풀, \$1pool\$1name\$1  | 
|  TaskCpuUsage  Apache Airflow v2.10.1 이상에서 사용 가능  |  cpu.usage.\$1dag\$1id\$1.\$1task\$1id\$1  |  %  |  DAG, \$1dag\$1id\$1 작업, \$1task\$1id\$1  | 
|  TaskMemoryUsage  Apache Airflow v2.10.1 이상에서 사용 가능  |  mem.usage.\$1dag\$1id\$1.\$1task\$1id\$1  |  %  |  DAG, \$1dag\$1id\$1 작업, \$1task\$1id\$1  | 

### Apache Airflow 타이머
<a name="timers-metrics"></a>

[이 섹션의 Apache Airflow 지표에는 Apache Airflow *타이머*에 대한 데이터가 포함되어 있습니다.](https://airflow.apache.org/docs/apache-airflow/stable/administration-and-deployment/logging-monitoring/metrics.html#timers)


| CloudWatch 지표 | Apache Airflow 지표 | 단위 | 측정 기준 | 
| --- | --- | --- | --- | 
|  CollectDBDags  |  collect\$1db\$1dags  |  밀리초  |  함수, DAG 프로세싱   | 
|  CriticalSectionDuration  |  scheduler.critical\$1section\$1duration  |  밀리초  |  함수, 스케줄러  | 
|  CriticalSectionQueryDuration  Apache Airflow v2.5.1 이상에서 사용 가능.   |  scheduler.critical\$1section\$1query\$1duration  |  밀리초  |  함수, 스케줄러  | 
|  DAGDependencyCheck  |  dagrun.dependency-check.\$1dag\$1id\$1  |  밀리초  |  DAG, \$1dag\$1id\$1  | 
|  DAGDurationFailed  |  dagrun.duration.failed.\$1dag\$1id\$1  |  밀리초  |  DAG, \$1dag\$1id\$1  | 
|  DAGDurationSuccess  |  dagrun.duration.success.\$1dag\$1id\$1  |  밀리초  |  DAG, \$1dag\$1id\$1  | 
|  DAGFileProcessingLastDuration  |  dag\$1processing.last\$1duration.\$1dag\$1filename\$1  |  초  |  DAG 파일 이름, \$1dag\$1filename\$1  | 
|  DAGScheduleDelay  |  dagrun.schedule\$1delay.\$1dag\$1id\$1  |  밀리초  |  DAG, \$1dag\$1id\$1  | 
|  FirstTaskSchedulingDelay  |  dagrun.\$1dag\$1id\$1.first\$1task\$1scheduling\$1delay  |  밀리초  |  DAG, \$1dag\$1id\$1  | 
|  SchedulerLoopDuration  Apache Airflow v2.5.1 이상에서 사용 가능.   |  scheduler.scheduler\$1loop\$1duration  |  밀리초  |  함수, 스케줄러  | 
|  TaskInstanceDuration  |  dag.\$1dag\$1id\$1.\$1task\$1id\$1.duration  |  밀리초  |  DAG, \$1dag\$1id\$1 작업, \$1task\$1id\$1  | 
|  TaskInstanceQueuedDuration  |  dag.`{dag_id}`.`{task_id}`.queued\$1duration  Apache Airflow v2.7.2 이상에서 사용 가능.   |  밀리초  |  DAG, \$1dag\$1id\$1 작업, \$1task\$1id\$1  | 
|  TaskInstanceScheduledDuration  Apache Airflow v2.7.2 이상에서 사용 가능.   |  dag.`{dag_id}`.`{task_id}`.scheduled\$1duration  |  밀리초  |  DAG, \$1dag\$1id\$1 작업, \$1task\$1id\$1  | 

## 보고할 지표 선택
<a name="choosing-metrics"></a>

다음 [Amazon MWAA 구성 옵션](configuring-env-variables.md)을 사용하여 CloudWatch로 내보내거나 Apache Airflow에서 차단할 Apache Airflow 지표를 선택할 수 있습니다.
+ **`metrics.metrics_allow_list`** - 사용자 환경에서 CloudWatch로 내보낼 지표를 선택하는 데 사용할 수 있는, 쉼표로 구분된 접두사 목록입니다. Apache Airflow가 가용한 모든 지표를 전송하지 않고 대신 요소의 하위 집합을 선택하도록 하려면 이 옵션을 사용합니다. 예를 들어 `scheduler,executor,dagrun`입니다.
+ **`metrics.metrics_block_list`** - 목록의 요소로 시작하는 지표를 필터링하기 위한, 쉼표로 구분된 접두사 목록입니다. 예를 들어 `scheduler,executor,dagrun`입니다.

`metrics.metrics_allow_list` 및 `metrics.metrics_block_list`를 모두 구성하면 Apache Airflow는 `metrics.metrics_block_list`을 무시합니다. `metrics.metrics_block_list`만 구성하고 `metrics.metrics_allow_list`는 구성하지 않은 경우, Apache Airflow는 사용자가 `metrics.metrics_block_list`에서 지정한 요소를 필터링합니다.

**참고**  
`metrics.metrics_allow_list` 및 `metrics.metrics_block_list` 구성 옵션은 Apache Airflow v2.6.3 이상에만 적용됩니다. 이전 버전의 Apache Airflow에서는 대신 `metrics.statsd_allow_list` 및 `metrics.statsd_block_list`를 사용합니다.

## 다음 단계
<a name="mwaa-metrics202-next-up"></a>
+ [PublishMetrics](https://docs.aws.amazon.com/mwaa/latest/API/API_PublishMetrics.html)에서 환경 상태 지표를 게시하는 데 사용하는 Amazon MWAA API 작업에 대해 알아봅니다.

# Amazon MWAA의 컨테이너, 대기열 및 데이터베이스 지표
<a name="accessing-metrics-cw-container-queue-db"></a>

원시 데이터를 수집하여 읽을 수 있는 거의 실시간 지표로 처리하는 CloudWatch를 사용하면 Apache Airflow 지표 외에도, Amazon Managed Workflows for Apache Airflow 환경의 기본 구성 요소를 모니터링할 수 있습니다. 이러한 환경 지표를 사용하면 주요 성과 지표에 대한 가시성이 좋아져 환경의 크기를 적절히 조정하고 워크플로와 관련된 문제를 디버깅하는 데 도움이 됩니다. 이들 지표는 Amazon MWAA에서 지원되는 모든 Apache Airflow 버전에 적용됩니다.



Amazon MWAA는 각 Amazon Elastic Container Service(Amazon ECS) 및 Amazon Aurora PostgreSQL 인스턴스에 대한 CPU 및 메모리 사용률을 제공하고, 메시지 수와 가장 오래된 메시지의 보관기간에 대한 Amazon Simple Queue Service(Amazon SQS) 지표를 제공하며, 데이터베이스 연결, 디스크 대기열 길이, 쓰기 동작, 지연 시간, 처리량에 관한 Amazon Relational Database Service(RDS) 지표, 그리고 Amazon RDS Proxy 지표를 제공합니다. 이러한 지표에는 기본 작업자, 추가 작업자, 스케줄러 및 웹 서버의 수도 포함됩니다.

이러한 통계는 15개월간 보관되므로 기록 정보를 보고 일정에 오류가 발생하는 이유를 더 잘 파악하고 근본적인 문제를 해결할 수 있습니다. 특정 임계치를 모니터링하다가 해당 임계치가 충족될 때 알림을 전송하거나 작업을 수행하도록 경보를 설정할 수도 있습니다. 자세한 정보는 [Amazon CloudWatch 사용 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)를 참조하세요.

**Topics**
+ [용어](#accessing-metrics-cw-container-queue-db-terms)
+ [측정 기준](#accessing-metrics-cw-container-queue-db-dimensions)
+ [CloudWatch 콘솔의 지표 액세스](#accessing-metrics-cw-container-queue-db-console)
+ [지표 목록](#accessing-metrics-cw-container-queue-db-list)

## 용어
<a name="accessing-metrics-cw-container-queue-db-terms"></a>

**네임스페이스**  
네임스페이스는 AWS 서비스의 CloudWatch 지표를 위한 컨테이너입니다. Amazon MWAA의 네임스페이스는 `AWS/MWAA`입니다.

**CloudWatch 지표**  
CloudWatch 지표는 CloudWatch에 고유한 시간 순서별 데이터 포인트 세트를 나타냅니다.

**측정 기준**  
차원은 지표의 보안 인증에 속하는 명칭/값 쌍입니다.

**단위**  
통계에는 측정 단위가 포함되어 있습니다. Amazon MWAA의 경우 단위에 *개수*가 포함됩니다.

## 측정 기준
<a name="accessing-metrics-cw-container-queue-db-dimensions"></a>

이 섹션에서는 CloudWatch에서 Amazon MWAA 지표에 사용되는 CloudWatch 차원 그룹화에 대해 설명합니다.


| 차원 | 설명 | 
| --- | --- | 
|  Cluster  |  Amazon MWAA 환경에서 Apache Airflow 구성 요소를 실행하는 데 사용하는 최소 3개의 Amazon ECS 컨테이너(스케줄러, 작업자, 웹 서버)에 대한 지표입니다.  | 
|  대기열  |  스케줄러와 작업자를 분리하는 Amazon SQS 대기열의 지표입니다. 작업자가 메시지를 읽을 때는 처리 중인 것으로 간주되어 다른 작업자가 사용할 수 없습니다. 메시지가 표시 제한 시간인 12시간 이전에 삭제되지 않으면 다른 작업자가 메시지를 읽을 수 있습니다.  | 
|  Database  |  Amazon MWAA에서 사용하는 Aurora 클러스터를 측정합니다. 여기에는 기본 데이터베이스 인스턴스에 대한 지표와 읽기 동작을 지원하는 읽기 전용 복제본이 포함됩니다. Amazon MWAA는 READER 및 WRITER 인스턴스 모두에 대한 데이터베이스 지표를 게시합니다.  | 

## CloudWatch 콘솔의 지표 액세스
<a name="accessing-metrics-cw-container-queue-db-console"></a>

이 섹션에서는 CloudWatch에서 Amazon MWAA 지표에 액세스하는 방법을 설명합니다.

**차원에 대한 성능 지표에 액세스하려면**

1. CloudWatch 콘솔에서 [지표 페이지](https://console.aws.amazon.com/cloudwatch/home#metricsV2:graph=~())를 엽니다.

1. 를 선택합니다 AWS 리전.

1. **AWS/MWAA** 네임스페이스를 선택합니다.

1. **모든 지표** 탭에서 차원을 선택합니다. 예: **클러스터**

1. 차원에 대한 CloudWatch 지표를 선택합니다. 예: *NumScheduler* 또는 *CPUUtilization* 이어서, **모든 검색 결과를 그래프로 표시**를 선택합니다.

1. **그래프로 표시된 지표** 탭을 선택하여 성능 지표에 액세스합니다.

## 지표 목록
<a name="accessing-metrics-cw-container-queue-db-list"></a>

다음 표에는 Amazon MWAA의 클러스터, 대기열 및 데이터베이스 서비스 지표가 나열되어 있습니다. Amazon ECS, Amazon SQS 또는 Amazon RDS에서 직접 내보낸 지표에 대한 설명에 액세스하려면 해당 문서 링크를 선택합니다.

**Topics**
+ [클러스터 지표](#container-list)
+ [데이터베이스 지표](#db-list)
+ [대기열 지표](#queue-list)
+ [Application Load Balancer 지표](#alb-list)

### 클러스터 지표
<a name="container-list"></a>

다음 지표는 각 스케줄러, 기본 작업자, 추가 작업자 및 웹 서버에 적용됩니다. 각 클러스터 지표에 대한 자세한 내용과 설명은 *Amazon ECS 개발자 가이드*의 [사용 가능한 지표 및 차원](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-metrics.html#available_cloudwatch_metrics)을 참조하세요.


| 네임스페이스 | 지표 | Unit | 
| --- | --- | --- | 
|  `AWS/MWAA`  |  `CPUUtilization`  |  %  | 
|  `AWS/MWAA`  |  `MemoryUtilization`  |  %  | 

#### 추가 작업자 및 웹 서버 컨테이너 수 평가
<a name="additional-worker-scheduler-sample-count"></a>

다음 절차에 설명된 대로 **클러스터** 차원에 제공된 구성 요소 지표를 사용하여 특정 시점에 환경에서 사용하고 있는 추가 작업자 또는 웹 서버의 수를 평가할 수 있습니다. **CPUUtilization** 또는 **MemoryUtilization** 지표를 그래프로 표시하고 통계 유형을 **샘플 수**로 설정하여 그렇게 할 수 있습니다. 결과 값은 `AdditionalWorker` 구성 요소의 총 `RUNNING` 작업 수입니다. 환경에서 사용하는 추가 작업자 인스턴스의 수를 이해하면 환경이 규모를 조정하는 방식을 파악하고 추가 작업자 수를 최적화하는 데 도움이 될 수 있습니다.

------
#### [ Workers ]

**를 사용하여 추가 작업자 수를 평가하려면 AWS Management Console**

1. **AWS/MWAA** 네임스페이스를 선택합니다.

1. **모든 지표** 탭에서 **클러스터** 차원을 선택합니다.

1. **클러스터** 차원에서, **추가 작업자의** 경우 **CPU 사용률** 또는 **메모리 사용률** 지표를 선택합니다.

1. **그래프로 표시된 지표** 탭에서 **기간**을 **1분**으로 설정하고, **통계**를 **샘플 수**로 설정합니다.

------
#### [ webservers ]

**를 사용하여 추가 웹 서버 수를 평가하려면 AWS Management Console**

1. **AWS/MWAA** 네임스페이스를 선택합니다.

1. **모든 지표** 탭에서 **클러스터** 차원을 선택합니다.

1. **클러스터** 차원에서, **AdditionalWebservers**의 경우 **CPUUtilization** 또는 **MemoryUtilization** 지표를 선택합니다.

1. **그래프로 표시된 지표** 탭에서 **기간**을 **1분**으로 설정하고, **통계**를 **샘플 수**로 설정합니다.

------

자세한 내용은 *Amazon Elastic Container Service 개발자 가이드*의 [서비스 `RUNNING` 작업 수](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-metrics.html#cw_running_task_count)를 참조하세요.

### 데이터베이스 지표
<a name="db-list"></a>

다음 지표는 Amazon MWAA 환경과 연결된 각 데이터베이스 인스턴스에 적용됩니다.


| 네임스페이스 | 지표 | Unit | 
| --- | --- | --- | 
|  `AWS/MWAA`  |  `CPUUtilization`  |  %  | 
|  `AWS/MWAA`  |  `DatabaseConnections`  |  개수  | 
|  `AWS/MWAA`  |  `DiskQueueDepth`  |  개수  | 
|  `AWS/MWAA`  |  `FreeableMemory`  |  바이트  | 
|  `AWS/MWAA`  |  `VolumeWriteIOPS`  |  5분당 개수  | 
|  `AWS/MWAA`  |  `WriteIOPS`  |  초당 개수  | 
|  `AWS/MWAA`  |  `WriteLatency`  |  초  | 
|  `AWS/MWAA`  |  `WriteThroughput`  |  초당 바이트  | 

### 대기열 지표
<a name="queue-list"></a>

다음 대기열 지표의 단위와 설명에 대한 자세한 정보는 *Amazon Simple Queue Service 개발자 가이드*의 [Amazon SQS에 사용 가능한 CloudWatch 지표](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-available-cloudwatch-metrics.html)를 참조하세요.


| 네임스페이스 | 지표 | Unit | 
| --- | --- | --- | 
|  `AWS/MWAA`  |  `ApproximateAgeOfOldestTask`  |  초  | 
|  `AWS/MWAA`  |  `RunningTasks`  |  개수  | 
|  `AWS/MWAA`  |  `QueuedTasks`  |  개수  | 

### Application Load Balancer 지표
<a name="alb-list"></a>

Application Load Balancer 지표는 환경에서 실행되는 웹 서버에 적용됩니다. Amazon MWAA는 이러한 지표를 사용하여 트래픽 양에 따라 웹 서버의 규모를 조정합니다. 다음 로드 밸런서 지표의 단위 및 설명에 대한 자세한 내용은 *Application Load Balancer 사용 설명서*의 [Application Load Balancer의 CloudWatch 지표](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html)를 참조하세요.


| 네임스페이스 | 지표 | Unit | 
| --- | --- | --- | 
|  `AWS/MWAA`  |  `ActiveConnectionCount`  |  개수  | 