このドキュメントでは、Realtime Compute for Apache Flink の主要なアラートメトリック、推奨されるアラート設定、および運用例を紹介します。これにより、システムパフォーマンスのモニタリングと問題診断を効果的に行えます。
前提条件
Configure monitoring and alerting を参照し、ワークスペースのモニタリングサービスに適した設定方法を選択します。
ARMS では、use a custom PromQL statement to create an alert rule を行う場合にのみ、複数メトリックをモニタリングできます。より簡単に設定する場合は、CloudMonitor でアラートを設定できます。
推奨アラートルール
|
シナリオ |
メトリック/イベント名 |
ルール設定 |
重大度 |
対応 |
|
ジョブ実行ステータスイベント |
= FAILED (イベントベースのアラート) |
P0 |
1. 再起動ポリシーが誤って設定されていないか確認します。デフォルト設定の使用を推奨します。 2. 再起動ポリシーが原因なのか、JobManager/TaskManager の例外が原因なのかを判断します。 3. 最新のセーブポイント、または成功した最新のチェックポイントからジョブを復元します。 |
|
|
Overview / NumOfRestart |
1 期間連続で 1 以上 |
P0 |
1. 根本原因を特定します。
2. 最新のセーブポイント、または成功した最新のチェックポイントからジョブを復元します。 |
|
|
NumOfCheckpoints (5 分集計) |
1 期間連続で 0 以下 |
P0 |
1. System checkpoints を参照し、チェックポイント失敗の根本原因をトラブルシューティングします。 2. 問題を特定して解決します。
3. 設定を動的に更新するか、成功した最新のチェックポイントからジョブを復元します。 |
|
|
Overview / CurrentEmitEventTimeLag && NumOfRecordsInFromSourcePerSecond |
最大レイテンシ ≥ 300,000 ms 入力レコード数 > 0 5 期間連続 |
P1 |
1. Monitor metrics を参照し、レイテンシの原因を特定します。
|
|
|
Overview / NumOfRecordsInFromSourcePerSecond && SourceIdleTime |
入力レコード数 ≤ 0 (ビジネスロジックに依存) 最大アイドル時間 > 60,000 ms 5 期間連続 |
P1 |
1. taskmanager.log、フレームグラフ、および上流サービスのメトリックを確認し、問題が 上流データなし、スロットリング、または例外 によるものか、あるいは スレッドスタックの停止 によるものかを確認します。
|
|
|
Overview / NumOfRecordsOutToSinkPerSecond |
5 期間連続で 0 以下 |
P1 |
1. データがシンクオペレーターに到達しているか確認します。
2. シンクが外部システムに書き込めるか確認します。
3. 一時的なフォールバックとして、バックアップストレージシステムへの二重書き込みを実装します。 |
|
|
CPU / TMCPUUsage |
10 期間連続で 85% 以上 |
P2 |
1. フレームグラフまたは Flink UI を使用して、ホットスポットとなっているオペレーターを特定します。
2. ボトルネックとなっているオペレーターの並列度を上げるか、TaskManager により多くの CPU コアを割り当てます。 |
|
|
TMHeapMemoryUsed |
10 期間連続で 90% 以上 |
P2 |
1. GC ログを分析して問題を特定します。
2. ヒープサイズまたは並列度を増やし、スロットあたりのデータ量を削減します。 |
ジョブの可用性
ジョブ失敗アラート
コンソール (ARMS)
-
Realtime Compute for Apache Flink コンソールにログインし、対象のワークスペースの[操作]列にある[コンソール]をクリックします。
-
左側のナビゲーションペインで、 を選択します。対象のジョブの名前をクリックします。
-
[アラーム] タブをクリックします。
[Add Alert Rule] をクリックします。[Create Rule] パネルでアラートを設定します。[Rule] では名前と説明を入力し、[Metric] として [Job Failed] を選択し、[Effective Period] と [Mute For] の間隔を設定します。[Notification Method] では希望する方法と 連絡先グループ を選択します。連絡先を管理するには、[Manage Contact] リンクをクリックします。
CloudMonitor
CloudMonitor コンソール にログインします。
-
左側のナビゲーションペインで、を選択します。
-
[サブスクリプションポリシー]タブで、[サブスクリプションポリシーの作成]をクリックします。
-
[サブスクリプションポリシーの作成] ページで、パラメーターを設定します。詳細については、「イベントサブスクリプションの管理 (推奨)」をご参照ください。
[Subscribe to Events] ステップで、[Type] を [System Event] に設定します。[Scope] セクションで、[Product] に Realtime Compute for Apache Flink を選択し、[Event Name] に [Job Failed] を選択します。[Level] と application group は All のままにできます。
ジョブの安定性
JobManager の頻繁な再起動
-
メトリック:
NumOfRestart -
ルール: 1 分以内にジョブが再起動した場合にアラートを発報します。
-
推奨設定:
-
NumOfRestart値が 1 以上
-
期間:1 分
-
通知:電話 + SMS + Email + Webhook (Critical)
-
チェックポイント成功率
-
メトリック:
NumOfCheckpoints -
ルール:5 分以内に成功したチェックポイントが発生しない場合にアラートを発報します。
-
推奨設定:
-
NumOfCheckpoints -
値が 0 以下
-
期間:5 分
-
通知:電話 + SMS + Email + Webhook (Critical)
-
データの適時性
レイテンシ SLA
-
メトリック:
-
CurrentEmitEventTimeLag -
NumOfRecordsInFromSourcePerSecond
-
-
ルール:データが取り込まれており、ビジネスレイテンシが 5 分を超える場合にアラートを発報します。しきい値とアラートレベルは、ビジネス要件に応じて調整できます。
-
推奨設定:
-
CurrentEmitEventTimeLag最大値が 300,000 以上
-
NumOfRecordsInFromSourcePerSecond値が 0 より大きい
-
期間:5 分
-
上流データフローの中断
-
メトリック:
-
NumOfRecordsInFromSourcePerSecond -
SourceIdleTime
-
-
ルール:データ入力が停止し、ソースのアイドル状態が 1 分を超える場合にアラートを発報します。しきい値とアラートレベルは、ビジネス要件に応じて調整できます。
-
推奨設定:
-
NumOfRecordsInFromSourcePerSecond値が 0 以下
-
SourceIdleTime最大値が 60,000 を超える
-
期間:5 分
-
データ出力なし
-
メトリック:
NumOfRecordsOutToSinkPerSecond -
ルール:5 分を超えてデータが送信されない場合にアラートを発報します。しきい値とアラートレベルは、ビジネス要件に応じて調整できます。
-
推奨設定:
-
NumOfRecordsOutToSinkPerSecond値が 0 以下
-
期間:5 分
-
リソースパフォーマンスのボトルネック
CPU パフォーマンスのボトルネック
-
メトリック:
TMCPUUsage -
ルール:CPU 使用率が 10 分を超えて 85% を上回る場合にアラートを発報します。
-
推奨設定:
-
TMCPUUsage最大値が 85 以上
-
期間:10 分
-
メモリパフォーマンスのボトルネック
-
メトリック:
TMHeapMemoryUsed -
ルール:ヒープメモリ使用率が 10 分を超えて 90% を上回る場合にアラートを発報します。
-
推奨設定:
-
TMHeapMemoryUsed最大値がしきい値 (90%) 以上
このしきい値は、 ページで確認できます。 例えば、合計メモリが 413 MB の場合、しきい値を 372 MB (413 MB の 90%) に設定できます。
-
期間:10 分
-