Realtime Compute for Apache Flink は、CloudMonitor (無料サービス) または Application Real-Time Monitoring Service (ARMS) のモニタリングおよびアラートサービスに対応しています。ジョブのメトリクスアラートとイベントアラート、およびワークフローのアラートを設定することで、例外を迅速に特定して対処できます。このトピックでは、さまざまなモニタリングサービスを使用して、モニタリングとアラートを設定する方法について説明します。
制限事項
-
デプロイメント時にセッションクラスターに送信された Flink ジョブでは、モニタリングとアラート機能の設定はできません。
-
現在のところ、バッチジョブではモニタリングとアラート機能はサポートされていません。
-
ARMS はワークフローアラートをサポートしていません。ただし、CloudMonitor (無料サービス) を使用して引き続き設定できます。
設定ガイド
お使いのワークスペースのモニタリングサービスのタイプ (モニタリングサービスタイプの確認) に応じて、適切な設定方法を選択してください:
-
無料のモニタリングサービス (CloudMonitor)
-
メトリックアラート設定: CPU、レイテンシー、データ量などのメトリック値の変更に基づいてアラートを設定します。単一または複数のジョブの設定に対応しています。
-
イベントアラート設定 (ワークフローを含む): ジョブの失敗などのイベントの発生に基づいてアラートを設定します。ジョブおよびワークフローイベントの設定に対応しています。
-
-
ARMS モニタリングサービス
-
メトリックアラート設定: メトリック値の変更に基づいてアラートを設定します (6 つのコアメトリックに対応)。単一または複数のジョブの設定に対応しています。
-
イベントアラート設定: ジョブの失敗イベントのみをサポートしています。現在、他のイベントアラートはサポートしていません。CloudMonitor イベントアラート設定で設定できます。
-
モニタリングサービスタイプの切り替え
さまざまなビジネスニーズに合わせて、モニタリングサービスタイプを切り替えることができます。
管理コンソールで、対象のワークスペースの[アクション] 列で [その他] をクリックして、他の監視サービスタイプに切り替えます。
サービスタイプの切り替えに関する注意点をよくお読みください。確認チェックボックスを選択した後にのみ、設定を続行できます。
CloudMonitor を使用したモニタリングとアラート機能の設定
メトリックアラート設定
ワークスペースを購入した Alibaba Cloud アカウント、およびそのアカウントの名前空間の権限を持つ RAM ユーザーと RAM ロールのみが、CloudMonitor でアラートを設定できます。
CloudMonitor コンソール にログインします。
-
左側のナビゲーションペインで、を選択します。
-
[アラートルールの作成] をクリックし、パラメーターを設定します。
-
パラメータ
説明
プロダクト
Realtime Compute for Apache Flink
リソース範囲
[インスタンス] を選択します。アラートルールは、Realtime Compute for Apache Flink の指定されたワークスペースに適用されます。
関連リソース
[インスタンスの追加] をクリックし、ターゲットリージョンでワークスペース (ワークスペース ID などの情報を表示する方法) を選択して、[OK] をクリックします。
ルール内容
[ルールの追加] > [シンプルメトリック] または [複合メトリック] をクリックして、[ルール説明の設定] パネルを開きます。
このパネルには、Critical、Warn (SMS、メール、Webhook で通知)、Info (メールと Webhook で通知) の複数のアラートレベルがあります。 各レベルに対して、しきい値条件を設定できます。 例えば、平均値が指定のしきい値以上の状態が 3 期間連続した場合 (1 期間 = 1 分) などです。
[ディメンション] セクションで、[namespace] (Flink の名前空間名) と [deploymentID] (Flink ジョブの [設定] タブにある [デプロイメント ID]) を設定して、監視するジョブを指定できます。
説明-
namespace と deploymentID のドロップダウンリストが空の場合は、手動で値を入力できます。
-
これらのフィールドを空のままにすると、すべての名前空間内のすべてのジョブがモニタリングの対象になります。
説明-
本番環境では、単一メトリックのアラートは誤検知や見逃しにつながりやすくなります。 複合メトリックアラートは、ビジネス上の例外をより正確に反映できます。 詳細については、「モニタリングとアラート機能の推奨設定例とテンプレート」をご参照ください。
-
その他のパラメータの詳細については、「アラートルールの作成」をご参照ください。
-
イベントアラート設定 (ワークフローを含む)
ワークスペースを購入した Alibaba Cloud アカウント、およびそのアカウントの名前空間の権限を持つ RAM ユーザーと RAM ロールのみが、CloudMonitor でアラートを設定したり、イベントをサブスクライブしたりできます。
ジョブのイベントアラート
条件を設定して、ジョブのシステムイベントアラートをサブスクライブします。 イベントアラートは一括設定に対応しています。
CloudMonitor コンソール にログインします。
-
左側のナビゲーションペインで、を選択します。
-
[サブスクリプションポリシー] タブで、[サブスクリプションポリシーの作成] をクリックします。
-
[サブスクリプションポリシーの作成] ページで、パラメーターを設定します。パラメーターの詳細については、「イベントサブスクリプションの管理 (推奨)」をご参照ください。
-
サブスクリプションタイプ: [システムイベント]。
-
製品: [Realtime Compute for Apache Flink] を選択します。
-
イベント名: [ジョブの実行失敗] (ARMS 監視サービスを使用している場合はサポートされません)、[ECS ダウンタイムの事後処理]、および [ECS に対するプロアクティブ O&M の影響] イベントをサポートします。
-
イベントコンテンツに以下の Flink 情報を入力することで、特定のジョブの指定や一括アラートの設定ができます。
-
ワークスペース ID: 対象ワークスペースのすべての名前空間にあるすべてのジョブに対してイベントアラートを設定します。 ワークスペース ID を確認するには、「ワークスペース ID などの情報を確認する方法」をご参照ください。
-
名前空間名: 対象の名前空間にあるすべてのジョブに対してイベントアラートを設定します。
-
デプロイメントジョブ名: 特定のジョブのイベントアラートを設定します。複数のジョブ名は、カンマ (
,) で区切ります。アカウントに同じ名前のジョブがある場合は、代わりに DeploymentID を使用します。 -
DeploymentID: 特定のジョブに対してイベントアラートを設定します。複数の ID は、コンマ (
,) で区切ります。ID は、Flink ジョブページの [設定] タブに [デプロイメント ID] として表示されます。
-
説明[アプリケーション グループ]、[メッセージ]、または[イベント リソース] を設定しない場合、サブスクリプションはアカウント内のすべてのワークスペースに適用されます。
-
ワークフローのイベントアラート
条件を設定して、Flink ワークフローのシステムイベントアラートをサブスクライブします。 イベントアラートは一括設定に対応しています。 ワークフローの詳細については、「ワークフローの管理」をご参照ください。
-
ワークフローノードのリソース ID を取得します。
CloudMonitor コンソール にログインします。
-
左側のナビゲーションペインで、を選択します。
-
[イベントモニタリング] タブで、Product を [Realtime Compute for Apache Flink] に、Event Name を [ワークフロータスクステータスの変更] に設定し、[ソースでフィルタリング] をクリックします。
-
以下の手順でワークフローノードのリソース ID を確認します。
[イベントモニタリング] ページで、[プロダクト] ドロップダウンリストから [Realtime Compute for Apache Flink] を選択します。 イベントリストで、イベント名が flink:Workflow:TaskStateChange Workflow Task Status Change のレコードを見つけます。 [リソース] 列でワークフローノードのリソース 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 に表示されるまでに数分の遅延が生じることがあります。
-
イベント通知をサブスクライブします。
-
左側のナビゲーションペインで、 を選択します。
-
[サブスクリプションポリシー] タブで、[サブスクリプションポリシーの作成] をクリックします。
-
[サブスクリプションポリシーの作成] ページで、サブスクリプションポリシーのパラメーターを設定します。パラメーターの詳細については、「イベントサブスクリプションの管理 (推奨)」をご参照ください。
-
サブスクリプションタイプ: [システムイベント]。
-
製品: [リアルタイムコンピューティング for Apache Flink] を選択します。
-
イベント名: [ワークフロータスクのステータス変更] を選択します。
-
イベント内容:
toState: FAILED(ワークフローの失敗)、toState: SUCCESS(ワークフローの成功)、fromState: SCHEDULED, toState: RUNNING(ワークフローの状態がスケジュール済みから実行中に変更) などのパラメーターを入力できます。 -
イベントリソース: ステップ 1 で取得したワークフローリソース ID を入力します。複数の ID はカンマ (
,) で区切ります。 -
[イベントタイプ]、[イベントレベル]、[アプリケーショングループ]: これらは設定しないでください。
-
-
ARMS によるモニタリングとアラート機能の設定
メトリックアラート設定
ARMS での複数メトリックのモニタリングは、カスタム PromQL によってのみサポートされます。より簡単な設定方法については、「CloudMonitor メトリックアラート設定」をご参照ください。
単一ジョブの設定 (管理コンソール)
対象ジョブに対して新しいアラートルールを作成するか、アラートルールテンプレートを作成して対象ジョブのアラートを作成できます。これにより、モニタリングとアラート機能の設定を迅速に行えます。
開発コンソールは、過去 48 時間のアラートイベントのみを表示します。古いアラートイベントを表示するには、ARMS コンソールの[アラート管理]に移動してください。
-
アラート設定ページに移動します。
-
管理コンソールにログインし、対象のワークスペースの [アクション] 列にある [コンソール] をクリックします。
-
ページで、対象のジョブの名前をクリックします。
-
[アラーム] タブをクリックします。
-
-
[アラートルール] タブで、 を選択します。
また、 を選択することもできます。アラートテンプレートを追加して使用することにより、アラートルールを直接、あるいはわずかな変更で作成できるため、設定プロセスを高速化できます。
-
アラートルール情報を入力します。
カテゴリ
パラメータ
説明
[ルール]
[名前]
先頭は文字で始まり、小文字、数字、アンダースコア (_) のみを含めることができます。長さは 3~64 文字に制限されています。
[説明]
ルールに関するメモ。
[内容]
アラートをトリガーする条件を設定します。システムは、指定された間隔で指定されたメトリック値をしきい値と比較します。結果が条件を満たす場合、アラートが自動的にトリガーされます。
-
[メトリック]:
-
1 分間の再起動回数:Job Manager が 1 分間に再起動した回数。
-
5 分間のチェックポイント回数:5 分間に成功したチェックポイントの数。
-
エミット遅延:ビジネスレイテンシー。データが生成されてからソース演算子を離れるまでの時間差です。単位は秒です。
重要データ生成時刻は、外部システムに記録されたタイムスタンプに依存します。外部システムにタイムスタンプがない場合、またはタイムスタンプが正しく書き込まれていない場合、エミット遅延の値は不正確になり、実際のレイテンシーを反映しません。実際のイベントを判断するために、複数のメトリックを使用してアラートを設定してください。詳細については、「モニタリングとアラート機能の推奨設定例とテンプレート」をご参照ください。
-
IN RPS:1 秒あたりの入力レコード数。単位はレコード/秒です。
-
OUT RPS:1 秒あたりの出力レコード数。単位はレコード/秒です。
-
ソースアイドル時間:ソースがデータを処理していない時間。単位はミリ秒です。
-
ジョブ失敗:ジョブが失敗しました。
-
-
[時間差]:システムが各チェックで遡って照会する、履歴データ時間ウィンドウの期間です。単位は分です。
-
[比較演算子]:>= と <= をサポートしています。
-
[しきい値]:メトリックと比較する値。
-
>= 演算子を選択した場合、システムは垂直軸の MAX 値を使用します。期間内の最大値がしきい値以上の場合、アラートルールがトリガーされます。
-
<= 演算子を選択すると、システムは縦軸の最小値を使用します。時間差内の最小値がしきい値 <= となった場合、アラートルールがトリガーされます。
-
例えば、「5 分間のチェックポイント回数」メトリックをモニタリングしているとします。時間差は 10 分に設定されており、しきい値は 2、演算子は「<=」です。
システムは毎分、過去 10 分間の履歴データをチェックします。成功したチェックポイントの数が 2 以下である 5 分間の間隔が見つかった場合、アラートがトリガーされます。
[有効期間]
アラートモニタリングがアクティブになる時間。日中のみ (9:00~18:00) アクティブになるように指定できます。デフォルトでは、終日アクティブです。
[アラート頻度]
指定した分数間は、アラートを 1 回のみ送信します。1 分から 1440 分 (24 時間) までサポートしています。
[通知方法]
[通知方法]
複数の通知方法を選択できます。サポートされている方法は次のとおりです。
-
DingTalk
-
メール
-
SMS
-
Webhook
-
電話
通知先の電話番号が検証済みであることを確認してください。そうでない場合、この方法は機能しません。下にある[通知対象の管理]をクリックします。「連絡先」タブで対象の連絡先の[電話番号]列に[未検証]と表示されている場合は、クリックして検証を完了します。
重要利用可能な通知連絡先が作成され、追加されていることを確認してください。そうでない場合、アラート通知は失敗します。例えば、通知方法として DingTalk を選択した場合は、DingTalk を選択し、DingTalk チャットボットタイプの DingTalk 通知連絡先を追加してください。
[通知対象]
複数の連絡先に同時に通知できます。 連絡先を選択または検索できます。 連絡先を選択する前に、右側の [通知対象管理] をクリックして作成する必要があります。 詳細については、「ワークスペースの管理と操作」をご参照ください。
[アラートノイズリダクション]
[詳細設定] をクリックすると、[アラームノイズ低減] スイッチをオンにできます。
アラートノイズリダクションをオンにすると、クラスタースケジューリングや自動チューニングによってトリガーされる短期的なフェイルオーバーなど、ジョブが迅速に回復できるシナリオではアラートが送信されません。設定したしきい値条件が継続的に満たされた場合にのみ、アラートが送信されます。
[データなしアラート]
[詳細設定] をクリックすると、[データなしアラーム] スイッチをオンにして、連続データなし時間情報を入力できます。
この機能をオンにすると、システムはモニタリングデータが報告されない状況を監視します。選択した期間内にデータが報告されない場合、アラートがトリガーされます。通常、JobManager が異常な場合、ジョブが予期せず停止した場合、または報告リンクが異常な場合にモニタリングデータは報告されません。
-
-
[OK] をクリックします。
保存されたアラートルールは、デフォルトで有効になり、アラートルールリストに表示されます。ルールを停止、編集、または削除できます。
単一または複数のジョブの設定 (ARMS コンソール)
Flink コンソールでジョブ名を変更した場合、元のジョブ名に基づいて ARMS コンソールで設定されたアラートルールは無効になります。名前が変更されたジョブを再選択し、アラートを設定して有効にする必要があります。
-
管理コンソールにログオンします。
-
対象のワークスペースの[操作] 列で、 を選択して ARMS コンソールに移動します。
ワークスペース名、ワークスペース ID、および対応する Prometheus インスタンス名が上部に表示されます。
左側のナビゲーションペインには、[ダッシュボードリスト]、[サービスディスカバリー]、[メトリック管理]、[アラートルール]、および[設定]が含まれています。 右上にはエージェントステータスが表示されます。 [サービスディスカバリー]ページの[メトリック]タブでは、ジョブ名、メトリックタイプ、およびその他の条件でメトリックを絞り込むことができます。 メトリックリストには、メトリック名、ジョブ名、メトリックタイプ、およびその他の情報が表示されます。
-
アラートルールを作成するには、左側の[アラートルール]をクリックします。
-
チェックタイプ:静的しきい値によるメトリックアラートとカスタム PromQL (Flink で既にサポートされているアラートメトリックを除く) をサポートしています。
-
フィルター条件: バッチアラート設定がサポートされています。[名前空間] には、名前空間名を入力します。すべてを選択すると、ワークスペース内のすべての名前空間を意味します。[デプロイの作成] には、名前空間内のターゲットジョブの [デプロイメント ID] を入力します (Flink ジョブの [設定] タブにあります)。すべてを選択すると、名前空間内のすべてのジョブを意味します。
設定パラメータの詳細については、「Prometheus アラートルールの作成」をご参照ください。Prometheus アラートルールテンプレートを作成することもできます。詳細については、「Prometheus アラートルールテンプレートの作成」をご参照ください。
-
イベントアラート設定
ジョブ失敗イベントのみをサポートしています。メトリックアラート設定で Job Failed ルールを選択して設定してください。その他のイベントアラートは現在サポートされていません。CloudMonitor イベントアラート設定を通じて設定できます。
よくある質問
開発コンソールでアラート用の DingTalk チャットボットを追加する方法
開発コンソールで Webhook を作成する方法
関連ドキュメント
-
Realtime Compute for Apache Flink では、CloudMonitor (無料サービス) または ARMS Prometheus Monitoring を選択して、ジョブのモニタリングおよびアラートを利用できます。機能、コストなどの詳細な比較については、「CloudMonitor と ARMS アラートサービスの機能比較」をご参照ください。
-
ARMS では、エスカレーションポリシー、スケジューリングなどの機能を設定できます。詳細については、「エスカレーションポリシー」、および「関連する実践的なチュートリアル」をご参照ください。
-
CloudMonitor では、DingTalk グループや Lark グループなどを通じてアラート通知を受信できます。設定の詳細については、「アラート通知方法」をご参照ください。
-
サポート対象の監視メトリクスの詳細については、「監視メトリクス」をご参照ください。
-
コストを抑えるために、モニタリングおよびアラートを無効化したり、特定のメトリクス (ARMS 使用時) を破棄したりできます。必要に応じて、後からメトリクス収集を再開できます。具体的な操作については、「監視メトリクスの破棄または復元」をご参照ください。