Realtime Compute for Apache Flink は、Cloud Monitor (無料) および Managed Service for Prometheus を使用した柔軟なモニタリングを提供します。ジョブのメトリック、イベント、ワークフローに対するアラートを設定することで、異常を迅速に検知し、解決できます。このガイドでは、両方のサービスにわたるモニタリングとアラートの設定について説明します。
制限事項
セッションクラスターで実行されている Flink ジョブでは、アラートルールはサポートされていません。
バッチジョブでは、アラートルールはサポートされていません。
ワークフローアラートは、Cloud Monitor でのみ利用可能です。
概要
ワークスペースのモニタリングサービスの種類に基づいて、設定方法を選択します。詳細については、「ワークスペースのモニタリングサービスタイプを確認する方法」をご参照ください。
Cloud Monitor
メトリックベースのアラート:CPU 使用率、レイテンシー、データ量などの主要なメトリックに対してアラートルールを設定します。適用対象:単一ジョブまたは複数ジョブのバッチ。
イベントベースのアラート (ワークフローを含む):ジョブの失敗など、特定のイベントに対してアラートを設定します。適用対象:ジョブおよびワークフローイベント。
Managed Service for Prometheus (ARMS)
メトリックベースのアラート:6 つの主要なメトリックに対してアラートを設定します。
イベントベースのアラート:ジョブの失敗イベントのみにアラートを設定します。他のイベントのアラートを設定するには、Cloud Monitor を使用します。詳細については、「イベントベースのアラート (ワークフローを含む)」をご参照ください。
Cloud Monitor を使用したアラートルールの設定
メトリックベースのアラート
Cloud Monitor でアラートルールを設定するには、Alibaba Cloud アカウントでログインするか、ターゲットの名前空間で必要な権限を持つ RAM ID としてログインする必要があります。
Cloud Monitor コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[アラートルールの作成] をクリックし、ルールを設定します。
パラメーター
説明
製品
[Flink] を選択します。
リソース範囲
[インスタンス] を選択します。アラートルールは特定の Flink ワークスペースに適用されます。
関連リソース
[インスタンスの追加] をクリックします。ダイアログボックスで、ターゲットリージョンとワークスペースを選択し (ワークスペース ID などの情報を表示する方法)、[OK] をクリックします。
[ルール説明]
[+ルールの追加] > [シンプルメトリック] または [複合メトリック] をクリックして、[ルール説明の設定] パネルを開きます。

(オプション) メトリックを選択すると、[ディメンション] セクションが表示されます。ここで [namespace] と [deploymentId] を設定して、監視するジョブのデプロイメントを指定できます。
説明ドロップダウンリストが空の場合は、名前空間とデプロイメント ID を手動で入力します。
これらのフィールドを空白にすると、すべての名前空間にわたるすべてのジョブデプロイメントが監視されます。
説明単一のメトリックによるアラートは、本番環境で誤検知や検知漏れを引き起こす可能性があります。複合指標のアラートは、実際のビジネス上の異常をより正確に反映します。詳細については、「モニタリングとアラートのベストプラクティス」をご参照ください。
その他のパラメーターの詳細については、「アラートルールの作成」をご参照ください。
イベントベースのアラート (ワークフローを含む)
Cloud Monitor でアラートルールを設定するには、Alibaba Cloud アカウントでログインするか、ターゲットの名前空間で必要な権限を持つ RAM ID としてログインする必要があります。
システムイベントのアラート
単一または複数のジョブのバッチに対してシステムイベントをサブスクライブします。
Cloud Monitor コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[サブスクリプションポリシー] タブで、[サブスクリプションポリシーの作成] をクリックします。
[サブスクリプションポリシーの作成] ページで、サブスクリプションの詳細を設定します。以下に記載されていないパラメーターの設定については、「イベントサブスクリプションの管理 (推奨)」をご参照ください。

サブスクリプションタイプ:[システムイベント] を選択します。
製品: [Flink] を選択します。
[イベント名]:サポートされているイベントには、`JOB_FAILED`、`ECS.SystemFailure`、`ECS.SystemMaintenance` があります。
[イベント内容]:必要に応じて以下の情報を入力します。
ワークスペース ID:ワークスペース ID を入力すると、アラートルールはターゲットワークスペース内のすべての名前空間にわたるすべてのジョブに適用されます。ワークスペース ID の表示については、「ワークスペース ID などの情報を表示する方法」をご参照ください。
名前空間名:名前空間名を入力すると、アラートルールはターゲットの名前空間内のすべてのジョブに適用されます。
デプロイメント名:ジョブのデプロイメント名を入力すると、アラートルールは特定のジョブデプロイメントに適用されます。複数の名前はカンマ (
,) で区切ります。重複するデプロイメント名が存在する場合は、デプロイメント ID を使用します。デプロイメント ID:ジョブのデプロイメント ID を入力すると、アラートルールは特定のジョブデプロイメントに適用されます。複数の ID はカンマ (
,) で区切ります。デプロイメント ID を取得するには、デプロイメントの詳細ページに移動します。
説明[アプリケーション グループ]、[イベント内容]、または [イベントリソース] を空にすると、サブスクリプションはアカウント内のすべてのワークスペースに適用されます。
ワークフローイベントのアラート
ワークフローイベントをサブスクライブします。ワークフローの詳細については、「ワークフローの管理」をご参照ください。
ワークフロータスクのリソース ID を取得します。
Cloud Monitor コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[イベントモニタリング] タブで、[プロダクトの選択] を [Flink] に設定し、[イベント名の選択] を
flink:Workflow:TaskStateChangeに設定し、[検索] をクリックします。ワークフロータスクのリソース ID をフィルターします。

リソース 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。詳細については、「ワークスペース ID などのワークスペースに関する情報を表示する方法」をご参照ください。namespaceId:ご利用の名前空間名。<workflowDefinitionName>ワークフロー名。
<taskDefinitionName>ワークフロータスクの名前。
説明ワークフロータスクの状態変更は、通常、数分の遅延をもって Cloud Monitor に表示されます。
イベント通知をサブスクライブします。
Cloud Monitor コンソールの左側のナビゲーションウィンドウで、 を選択します。
[サブスクリプションポリシー] タブで、[サブスクリプションポリシーの作成] をクリックします。
[サブスクリプションポリシーの作成] ページで、ポリシーを設定します。詳細については、「イベントサブスクリプションの管理 (推奨)」をご参照ください。
[サブスクリプションタイプ]:[システムイベント] を選択します。
製品:[Flink] を選択します。
[イベント名]:`flink:Workflow:TaskStateChange` を選択します。
[イベント内容]:目的の遷移状態でフィルターします。例:
toState: FAILED、toState: SUCCESS、fromState: SCHEDULED, toState: RUNNING。[イベントリソース]:前のステップで取得したリソース ID を入力します。複数の ID はカンマ (
,) で区切ります。[イベントタイプ]、[イベントレベル]、[アプリケーション グループ]:これらのパラメーターは設定しないでおきます。
Managed Service for Prometheus を使用したモニタリングとアラートの設定
メトリックベースのアラート
Prometheus を使用して複数のメトリックを監視するには、カスタム PromQL 文を使用してアラートルールを作成する必要があります。より簡単な設定のためには、Cloud Monitor でアラートルールを設定してください。
単一ジョブの設定 (開発コンソール)
ターゲットジョブのアラートルールをゼロから、またはテンプレートを使用して作成できます。
開発コンソールには、過去 48 時間のアラートイベントのみが表示されます。古いアラート履歴については、ARMS コンソールの [アラート管理] を確認してください。
アラート設定ページに移動します。
Realtime Compute for Apache Flink の管理コンソールにログインし、ワークスペースの [操作] 列にある [コンソール] をクリックします。
左側のナビゲーションメニューで、 を選択します。ご利用のジョブデプロイメントをクリックします。
[アラーム] タブを選択します。
[アラームルール] サブタブに切り替え、 を選択します。
または、 を選択します。
アラートルール情報を入力します。
セクション
ラベル
説明
ルール
名前
ルール名を入力します。先頭は英字である必要があり、小文字の英字、数字、アンダースコア (
_) を使用できます。長さ:3~64 文字。説明
ルールに関する備考を入力します。
コンテンツ
アラートをトリガーする条件を設定します。Realtime Compute for Apache Flink は、実際のメトリック値を定期的にしきい値と比較し、条件が満たされた場合にアラートをトリガーします。アラートロジックを設定します:
メトリック:
1分あたりの再起動回数5分あたりのチェックポイント数Emit 遅延:データ生成からソース出力までのビジネスレイテンシー (秒)。重要Emit 遅延の精度は、外部システムからの正確なタイムスタンプに依存します。外部システムにタイムスタンプがない、または不正確なタイムスタンプが記録されている場合、Emit 遅延は不正確になり、真のレイテンシーを反映できません。実際のレイテンシーをより正確に反映するには、複合指標のアラートルールを設定します。詳細については、「モニタリングとアラートのベストプラクティス」をご参照ください。IN RPS:1秒あたりの入力レコード数。OUT RPS:1秒あたりの出力レコード数。ソースアイドル時間:ソースオペレーターがデータを処理していなかった時間 (ミリ秒)。ジョブの失敗
[時間間隔]:各チェック時にシステムが現在時刻から遡ってクエリする既存データのタイムウィンドウの長さ (分)。
[比較演算子]:>= と <= をサポートします。
しきい値: メトリックと比較される値。
比較演算子 (
>=):メトリックの最大値をしきい値と比較します。max_value >= thresholdの場合にアラートを発行します。比較演算子 (
<=):メトリックの最小値をしきい値と比較します。min_value <= thresholdの場合にアラートを発行します。
5分あたりのチェックポイント数メトリックを監視し、時間間隔を 10 分、しきい値を 2、比較演算子を<=とした場合を想定します。Flink は 1 分ごとにチェックを行い、10 分間のウィンドウでメトリックを評価します。任意の 5 分間における成功したチェックポイントの最小数が 2 以下に低下した場合にアラートがトリガーされます。
発効時間
アラートルールが有効になる時間帯。デフォルトは終日です。営業時間 (午前 9 時から午後 6 時) など、特定の日時にアラートを制限できます。
[アラーム頻度]
指定された分数内でアラートが送信される間隔。1 分から 1440 分 (24 時間) までサポートします。
[通知]
[通知]
1 つ以上の通知方法を選択します。オプションは次のとおりです:
DingTalk
メール
SMS
Webhook
電話
受信者の電話番号が認証されていることを確認してください。そうでない場合、通知は有効になりません。下にある [通知オブジェクト管理] をクリックできます。[連絡先] タブのターゲット連絡先の [電話] 列に [未認証] タグが表示されている場合は、それをクリックして認証を完了します。

重要選択した通知方法に対応する通知オブジェクトが設定されていることを確認してください。DingTalk の場合、通知方法として DingTalk を選択した後、DingTalk ロボット通知オブジェクトを追加することを意味します。
通知オブジェクト
1 つ以上の通知オブジェクトを選択します。[通知オブジェクト管理] をクリックして通知オブジェクトを作成します。詳細については、「ワークスペースと名前空間の管理」をご参照ください。
アラームノイズの削減
[詳細設定] をクリックし、[アラームノイズリダクション] をオンに切り替えます。
このオプションを有効にすると、しきい値が継続的に満たされた場合にのみアラートが送信されます。これにより、クラスターのスケジューリングや自動チューニングによる一時的なフェールオーバーなど、一時的な問題に対するアラートを防ぎます。
[データなしアラーム]
[詳細設定] をクリックし、[データなしアラーム] スイッチをオンにして、期間を指定します。
選択した期間内にモニタリングデータが報告されない場合にアラートをトリガーします。典型的な原因:JobManager の例外、ジョブの停止、またはレポートリンクの障害。
[OK] をクリックします。
アラートルールを保存すると、自動的に有効になり、アラートルールリストに表示されます。停止、編集、または削除を選択できます。
イベントベースのアラート
ジョブの失敗イベントのみがサポートされています。このイベントのアラートを設定するには、メトリックベースのアラート設定の指示に従い、ジョブの失敗メトリックを選択します。他のイベントのアラートを設定するには、「Cloud Monitor を使用したイベントベースのアラート (ワークフローを含む) の設定」をご参照ください。

