翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 ですべて表示を選択します。
ダッシュボードには、次の 2 つの CloudWatch 名前空間のメトリクスが表示されます。
-
AmazonMWAA– Apache Airflow メトリクス。 -
AWS/MWAA– コンテナ、キュー、データベースのメトリクス。
次のコントロールを使用して、ダッシュボードの表示内容を変更できます。
-
アラームレコメンデーショントグルをオンにして、レコメンデーションメトリクスのみを表示します。このトグルをオンにすると、各グラフはアラームしきい値を注釈として描画します。注釈は、
メトリクスに応じて、メトリクスが上記の場合はアラームを、メトリクスが以下の場合はアラームを読み取ります。 -
メトリクスセクションフィルターを使用して、特定のグループのグラフのみを表示します。使用可能なグループは、コンテナ、データベースとキュー、スケジューラ、DAG 処理、タスク、トリガーです。
注記
メトリクス許可リストまたはブロックリストオプションを使用して発行する Apache Airflow メトリクスをフィルタリングするように環境を設定すると、一部のグラフにデータがない可能性があります。
注記
メトリクスダッシュボードを表示するには、IAM ID に、、、 cloudwatch:GetMetricStatisticsなどの CloudWatch cloudwatch:GetMetricDataメトリクスを読み取るアクセス許可が必要ですcloudwatch:ListMetrics。これらのアクセス許可がない場合、グラフはデータなしでレンダリングされます。
Amazon MWAA が公開するメトリクスの完全なリストについては、「」を参照してくださいCloudWatch の Apache Airflow 環境メトリクス。
ダッシュボードに表示されるメトリクス
ダッシュボードは、メトリクスセクションでフィルタリングできる 6 つのセクションにグラフを整理します。これは、環境全体のメトリクスの厳選されたセットを示しています。グラフは、 AmazonMWAA名前空間 (Apache Airflow メトリクス) と AWS/MWAA名前空間 (コンテナ、キュー、データベースメトリクス) から取得されます。次の表に、各セクションのグラフと各セクションに表示される CloudWatch メトリクスを示します。
| セクション | チャート | CloudWatch メトリクス |
|---|---|---|
| コンテナ | スケジューラの 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 アラームを一覧表示する環境アラームテーブルが表示されます。Amazon MWAA は CloudWatch 名前空間とEnvironmentディメンションによってこれらのアラームと一致するため、テーブルには、推奨アラームだけでなく、自分で作成したアラームが含まれます。
ペインヘッダーには、現在 ALARM状態にある環境のアラームの数のアラーム内カウントが表示されます。環境アラームテーブルには次の列があります。
| 名前 | ステータス | Condition | アクション | 最終更新日 |
|---|---|---|---|---|
| CloudWatch コンソールでアラームにリンクするアラーム名。 | アラームステータス: アラーム、OK、または不十分なデータ。 | 期間内の n 個のデータポイントに対して として表示されるアラーム条件。 |
SNS トピックの通知トピックなどのアラームのアクション、またはアラームにアクションがない場合は -。 |
アラームが最後に更新された日時。 |
注記
このテーブルのアラームを表示するには、 アクセスcloudwatch:DescribeAlarms許可が必要です。
環境にアラームがない場合、環境アラームテーブルは空であり、環境のモニタリングを開始するための推奨アラームを作成するガイダンスを提供します。
アラームペインには、次の 2 つのボタンがあります。
-
推奨アラームの作成 – 新しいタブで 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 つで最大 > 1800 秒。 |
| スケジューラの 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 つについて平均 < 512 MiB。 |
アラーム状態の概要
メトリクスアラームには次の状態があります。
-
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 ファイルを 1 回スキャンしてインポートするのにかかった秒数。
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 に関するよくある質問
次のステップ
-
お使いの環境の Amazon Aurora PostgreSQL メタデータデータベースにクエリを実行し、カスタムメトリクスを DAG を使用して CloudWatch にカスタムメトリクスを書き込む で CloudWatch に公開する DAG を作成する方法について説明します。