Realtime Compute for Apache Flink は、無料の CloudMonitor サービスまたは Application Real-Time Monitoring Service (ARMS) を使用してモニタリングとアラートを行います。メトリックベース、イベントベース、およびワークフローのアラートを設定して、例外を迅速に特定して解決できます。このトピックでは、両方のサービスでこれらのアラートを設定する方法について説明します。
制限事項
デプロイ時にセッションクラスターに送信される Flink ジョブでは、モニタリングとアラートはサポートされていません。
現在、バッチジョブではモニタリングとアラートはサポートされていません。
ARMS はワークフローアラートをサポートしていません。CloudMonitor を使用して設定する必要があります。
設定ガイド
設定方法は、ワークスペースで使用されるモニタリングサービスによって異なります。ワークスペースが使用するサービスを特定する方法については、「ワークスペースのモニタリングサービスタイプを確認する方法」をご参照ください。
CloudMonitor (無料のモニタリングサービス)
メトリックベースのアラートの設定: CPU 使用率、レイテンシー、データ量などのメトリック値の変更に基づいてアラートをトリガーします。単一のジョブまたは複数のジョブに対して一度にアラートを設定できます。
イベントベースのアラート (ワークフローを含む) の設定: ジョブの失敗など、特定のイベントが発生したときにアラートをトリガーします。ジョブイベントとワークフローイベントの両方に対してアラートを設定できます。
ARMS
メトリックベースのアラートの設定: 6 つのコアメトリックの値の変更に基づいてアラートをトリガーします。単一のジョブまたは複数のジョブに対して一度にアラートを設定できます。
イベントベースのアラートの設定: ジョブの失敗イベントのみがサポートされます。他のイベントアラートはサポートされていません。他のイベントアラートを設定するには、CloudMonitor イベントアラート設定方法を使用する必要があります。
CloudMonitor でのモニタリングとアラートの設定
メトリックベースのアラートの設定
CloudMonitor では、ワークスペースを所有する Alibaba Cloud アカウント、またはプロジェクト権限を持つ Resource Access Management (RAM) ユーザーおよび RAM ロールのみがアラートを設定できます。
Cloud Monitor コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[アラートルールの作成] をクリックし、パラメーターを設定します。
パラメーター
説明
プロダクト
Realtime Compute for Apache Flink
リソース範囲
[インスタンス] を選択します。アラートルールは、Realtime Compute for Apache Flink の指定されたワークスペースに適用されます。
リンクされたインスタンス
[インスタンスの追加] をクリックし、ターゲットリージョンでワークスペースを選択してから、[確認] をクリックします。詳細については、「ワークスペース ID などの情報を表示するにはどうすればよいですか?」をご参照ください。
ルール説明
[ルールの追加] > [単純なメトリック] または [複合メトリック] をクリックして、[ルール説明の設定] パネルを開きます。

[ディメンション] セクションで、[namespace] (Flink プロジェクト名) と [deploymentID] (Flink ジョブの [デプロイメント詳細] タブにある [デプロイメントジョブ ID]) を設定して、監視するジョブを指定できます。
説明namespace と deploymentID のドロップダウンリストが空の場合は、手動で値を入力できます。
これらのフィールドを空のままにすると、すべてのプロジェクトのすべてのジョブが監視されます。
説明本番環境では、単一メトリックのアラートは誤検知を引き起こしたり、実際の問題を検出できなかったりする可能性があります。複合メトリックアラートは、ビジネス上の例外をより正確に反映します。詳細については、「モニタリングとアラートの設定ガイド」をご参照ください。
その他のパラメーターの詳細については、「アラートルールの作成」をご参照ください。
イベントベースのアラート (ワークフローを含む) の設定
CloudMonitor では、ワークスペースを所有する Alibaba Cloud アカウント、またはプロジェクト権限を持つ RAM ユーザーおよび RAM ロールのみが、アラートを設定したり、イベントをサブスクライブしたりできます。
ジョブイベントアラート
条件を設定することで、ジョブのシステムイベントアラートをサブスクライブできます。複数のジョブに対して一度にイベントアラートを設定することもできます。
Cloud Monitor コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[サブスクリプションポリシー] タブで、[サブスクリプションポリシーの作成] をクリックします。
[サブスクリプションポリシーの作成] ページで、パラメーターを設定します。詳細については、「イベントサブスクリプションの管理 (推奨)」をご参照ください。

サブスクリプションタイプ: [システムイベント]。
プロダクト: [Realtime Compute For Apache Flink] を選択します。
イベント名: サポートされているイベントには、[ジョブの実行に失敗しました] (ARMS を使用している場合はサポートされません)、[ECS 障害の事後処理]、および [ECS プロアクティブ O&M の影響] があります。ジョブの実行に失敗しましたイベントは、クリティカルの重要度レベルのみをサポートします。
イベント内容: 以下の Flink 情報を入力することで、単一のジョブを指定したり、複数のジョブのアラートを設定したりできます。
ワークスペース ID: 指定されたワークスペース内のすべてのプロジェクトのすべてのジョブに対してイベントアラートを設定します。ワークスペース ID の表示方法の詳細については、「ワークスペース ID などの情報を表示するにはどうすればよいですか?」をご参照ください。
プロジェクト名: 指定されたプロジェクト内のすべてのジョブに対してイベントアラートを設定します。
デプロイメント名: 特定のジョブに対してイベントアラートを設定します。複数のジョブ名をコンマ (
,) で区切ることができます。アカウントに同じ名前のジョブがある場合は、代わりに DeploymentID を使用して一意性を確保してください。DeploymentID: 特定のジョブに対してイベントアラートを設定します。複数のデプロイメント ID をコンマ (
,) で区切ることができます。ID は、Flink ジョブページの [デプロイメント詳細] タブで [デプロイメントジョブ ID] として表示されます。
説明[アプリケーション グループ]、[イベント内容]、または [イベントリソース] パラメーターを設定しない場合、サブスクリプションはアカウント内のすべてのワークスペースに適用されます。
ワークフローイベントアラート
条件を設定することで、Flink ワークフローのシステムイベントアラートをサブスクライブできます。複数のワークフローに対して一度にイベントアラートを設定することもできます。ワークフローの詳細については、「ワークフローの管理」をご参照ください。
ワークフローノードのリソース ID を取得します。
Cloud Monitor コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[イベントモニタリング] タブで、プロダクトを [Realtime Compute For Apache Flink] に、イベント名を [ワークフロータスクのステータス変更] に設定し、[検索] をクリックします。
結果からワークフローノードのリソース ID を見つけます。

リソースのフォーマットは
acs:flink:cn-hangzhou:<AlibabaCloudAccountID>:resourceId/workspaceId/<workspaceId-namespaceId>#workflowDefinitionName/<workflowDefinitionName>#taskDefinitionName/<taskDefinitionName>です。このフォーマットを使用して、ワークフローノードのリソース ID を直接作成することもできます。パラメーター
説明
<AlibabaCloudAccountID>Flink ワークスペースを所有する Alibaba Cloud アカウントの ID。
<workspaceId-namespaceId>workspaceIdとnamespaceIdをハイフン (-) で結合したものです。workspaceId: ワークスペース ID。詳細については、「ワークスペースの管理と操作」をご参照ください。namespaceId: プロジェクト名。<workflowDefinitionName>ワークフロー名。
<taskDefinitionName>ワークフローノードの名前。
説明CloudMonitor のワークフローステータス変更イベントは、数分遅延する場合があります。
イベント通知をサブスクライブします。
左側のナビゲーションウィンドウで、 を選択します。
[サブスクリプションポリシー] タブで、[サブスクリプションポリシーの作成] をクリックします。
[サブスクリプションポリシーの作成] ページで、パラメーターを設定します。詳細については、「イベントサブスクリプションの管理 (推奨)」をご参照ください。
サブスクリプションタイプ: [システムイベント]。
プロダクト: [Realtime Compute For Apache Flink] を選択します。
イベント名: [ワークフロータスクのステータス変更] を選択します。
イベント内容:
toState: FAILED(ワークフロー失敗)、toState: SUCCESS(ワークフロー成功)、またはfromState: SCHEDULED, toState: RUNNING(ワークフローステータスがスケジュール済みから実行中に変更) などのパラメーターを入力できます。イベントリソース: ステップ 1 で取得したワークフローのリソース ID を入力します。複数の ID をコンマ (
,) で区切ることができます。イベントタイプ、イベントレベル、およびアプリケーション グループ: これらのパラメーターは設定しないでください。
ARMS でのモニタリングとアラートの設定
メトリックベースのアラートの設定
ARMS は、カスタムの Prometheus Query Language (PromQL) を介してのみ複数メトリックのモニタリングをサポートします。より簡単な設定方法については、CloudMonitor でメトリックベースのアラートを設定できます。
単一ジョブの設定 (Real-time Compute コンソール)
特定のジョブのアラートルールを作成できます。既存のテンプレートからアラートルールを作成して、設定プロセスを高速化することもできます。
Realtime Compute 開発コンソールには、過去 48 時間のアラートイベントのみが表示されます。古いアラートイベントを表示するには、ARMS コンソールの [アラート管理] に移動します。
アラート設定ページに移動します。
Realtime Compute コンソールにログインし、目的のワークスペースの [アクション] 列にある [コンソール] をクリックします。
ナビゲーションウィンドウで、 を選択します。目的のジョブの名前をクリックします。
[アラート] タブをクリックします。
[アラートルール] タブで、 を選択します。
または、 を選択することもできます。アラートテンプレートを使用すると、アラートルールを直接作成したり、わずかな変更で作成したりできるため、設定プロセスが高速化されます。
アラートルール情報を入力します。
カテゴリ
パラメーター
説明
ルールの詳細
ルール名
文字で始まり、小文字、数字、アンダースコア (_) のみを含める必要があります。長さは 3〜64 文字である必要があります。
説明
ルールに関する備考。
内容
アラートをトリガーする条件を設定します。システムは、指定されたメトリック値をしきい値と定期的に比較します。条件が満たされると、アラートが自動的にトリガーされます。
メトリック:
1 分あたりの再起動回数: 1 分あたりの JobManager の再起動回数。単位: 回。
5 分あたりのチェックポイント数: 5 分あたりの成功したチェックポイントの数。単位: 回。
Emit 遅延: ビジネスレイテンシー。これは、データが生成されてからソースオペレーターを離れるまでの時間差です。単位: 秒。
重要データ生成時間は、外部システムに記録されたタイムスタンプに依存します。外部システムにタイムスタンプがない場合、または不正なタイムスタンプが書き込まれた場合、Emit 遅延の値は不正確になり、実際のレイテンシーを反映しません。実際のイベントを特定するために、複数メトリックのアラートを設定することをお勧めします。詳細については、「モニタリングとアラートの設定ガイド」をご参照ください。
IN RPS: 1 秒あたりの入力レコード数。単位: レコード/秒。
OUT RPS: 1 秒あたりの出力レコード数。単位: レコード/秒。
ソースアイドル時間: ソースがデータを処理していない時間。単位: ミリ秒。
ジョブの失敗: ジョブが失敗しました。
時間差: 各チェックでクエリする既存データウィンドウの長さ。単位: 分。
演算子: >= と <= をサポートします。
しきい値: メトリックと比較する値。
>= 演算子を選択した場合、システムは y 軸の MAX 値を使用します。時間差内の最大値がしきい値以上の場合、アラートがトリガーされます。
<= 演算子を選択した場合、システムは y 軸の MIN 値を使用します。時間差内の最小値がしきい値以下の場合、アラートがトリガーされます。
たとえば、「5 分あたりのチェックポイント数」メトリックを監視しているとします。時間差を 10 分、しきい値を 2、演算子を「<=」に設定します。
システムは 1 分ごとに過去 10 分間の既存データをチェックします。その 10 分間のウィンドウ内で、成功したチェックポイントの数が 2 以下の 5 分間の期間を探します。そのような期間が見つかった場合、アラートがトリガーされます。
有効期間
アラートモニタリングがアクティブな時間。日中 (09:00 から 18:00) のみアクティブに指定できます。デフォルトでは、終日アクティブです。
アラート頻度
アラートが送信される間隔。1 分から 1,440 分 (24 時間) まで設定できます。
通知方法
通知方法
複数の通知方法をサポートします。サポートされている方法は次のとおりです。
DingTalk
メール
SMS
Webhook
電話: 連絡先の電話番号。
受信者の電話番号が認証済みであることを確認してください。そうでない場合、このメソッドは機能しません。下の [通知対象管理] をクリックします。[連絡先] タブで対象の連絡先の [電話番号] 列に [未認証] タグが表示されている場合は、それをクリックして認証を完了します。

重要利用可能な通知オブジェクトを作成して追加したことを確認してください。そうしないと、アラート通知は失敗します。たとえば、通知方法として DingTalk を選択した場合は、DingTalk を選択し、DingTalk ロボットタイプの DingTalk 通知オブジェクトを追加します。
通知オブジェクト
複数のオブジェクトに同時に通知できます。通知オブジェクトを選択または検索できます。通知オブジェクトを選択する前に、右側の [通知オブジェクト管理] をクリックして作成します。詳細については、「ワークスペースの管理と操作」をご参照ください。
アラートミュート
[高度な設定] をクリックし、[アラートミュート] スイッチをオンにします。
有効にすると、クラスターのスケジューリングや自動調整によってトリガーされる短期的なフェールオーバーなど、ジョブが迅速に回復できるシナリオではアラートは送信されません。アラートは、しきい値条件が継続的に満たされた場合にのみ送信されます。
データなしアラート
[高度な設定] をクリックし、[データなしアラート] スイッチをオンにして、データが受信されない期間を指定します。
有効にすると、この機能はイベントトラッキングデータが報告されないシナリオを監視します。指定された期間内にデータが報告されない場合、アラートがトリガーされます。これは、JobManager の例外、予期しないジョブの停止、またはレポートリンクの問題が原因である可能性があります。
[OK] をクリックします。
保存されたアラートルールはデフォルトで有効になり、アラートルールリストに表示されます。その後、必要に応じてルールを停止、編集、または削除できます。
単一または複数ジョブのアラート設定 (ARMS コンソール)
Realtime Compute コンソールにログインします。
目的のワークスペースの [アクション] 列で、 を選択して、Application Real-Time Monitoring Service (ARMS) コンソールに移動します。
ページの上部には、ワークスペース名、ワークスペース ID、および対応する Prometheus インスタンス名が表示されます。

左側のナビゲーションウィンドウで、[アラートルール] をクリックしてアラートルールを作成します。

チェックタイプ: 静的しきい値またはカスタム PromQL を使用するメトリックベースのアラートをサポートします。これは、既にサポートされている Flink アラートメトリックには適用されません。
フィルター条件: 複数のジョブのアラート設定をサポートします。[Namespace] には、プロジェクト名を入力します。すべてを選択した場合、ルールはワークスペース内のすべてのプロジェクトに適用されます。[Deployment] には、プロジェクト内の目的のジョブの [デプロイメントジョブ ID] を入力します。この ID は、Flink ジョブの [デプロイメント詳細] タブで確認できます。すべてを選択した場合、ルールはプロジェクト内のすべてのジョブに適用されます。
その他の設定パラメーターの詳細については、「Prometheus アラートルールの作成」をご参照ください。Prometheus アラートルールテンプレートを作成することもできます。詳細については、「Prometheus アラートルールテンプレートの作成」をご参照ください。
イベントベースのアラートの設定
ジョブの失敗イベントのみがサポートされます。このイベントのアラートを設定するには、メトリックベースのアラート設定でジョブの失敗ルールを選択します。他のイベントアラートはサポートされていません。他のイベントアラートを設定するには、CloudMonitor イベントアラート設定方法を使用する必要があります。
よくある質問
Realtime Compute 開発コンソールでアラート用の DingTalk ロボットを追加する方法
Realtime Compute 開発コンソールで Webhook を作成する方法
参考資料
Realtime Compute for Apache Flink では、ジョブのモニタリングとアラートに CloudMonitor (無料のモニタリングサービス) または ARMS Prometheus モニタリングのいずれかを選択できます。機能、コスト、その他の側面の詳細な比較については、「CloudMonitor と ARMS アラートサービスの比較」をご参照ください。
ARMS は、アラートエスカレーション、スケジューリングなどの機能をサポートしています。詳細については、エスカレーションポリシー、および関連する実践チュートリアルをご参照ください。
CloudMonitor は、DingTalk グループや Lark グループなどの方法でアラート通知を受信することをサポートしています。これらの通知方法の設定方法の詳細については、「通知方法」をご参照ください。
サポートされているモニタリングメトリックの詳細については、「モニタリングメトリック」をご参照ください。
モニタリングとアラートを無効にしたり、特定のメトリックを破棄したり (ARMS を使用している場合) して、コストを節約できます。必要に応じて、後でメトリックの収集を再開できます。具体的な操作の詳細については、「モニタリングメトリックの破棄または再開」をご参照ください。

