このトピックでは、モニタリングとアラート機能、およびログに関するよくある質問への回答を提供します。
デプロイメントのログを Simple Log Service にエクスポートするためのパラメーターを構成した後に、デプロイメントの起動エラーが報告された場合はどうすればよいですか?
Realtime Compute for Apache Flink デプロイメントの過去の操作ログを表示、検索、および分析するにはどうすればよいですか?
静的でないメソッドを使用して生成されたログを Simple Log Service にエクスポートできない問題を解決するにはどうすればよいですか?
DataStream デプロイメントが遅延していないにもかかわらず、出力データの遅延関連メトリックの値がデプロイメントの遅延を示している場合はどうすればよいですか?
ワークスペースのモニタリングおよびアラートサービスの種類を確認するにはどうすればよいですか?
ワークスペースのモニタリングおよびアラートサービスの種類は、ワークスペースの作成時に選択されます。 ワークスペースを作成した後、次の手順を実行して、ワークスペースのモニタリングおよびアラートサービスの種類を確認できます。Realtime Compute for Apache Flink の開発コンソールの左側のナビゲーションウィンドウで、 を選択します。 [デプロイメント] ページで、目的のデプロイメントを見つけて、デプロイメントの名前をクリックします。 [アラーム] タブが表示されている場合は、従量課金制 Prometheus モニタリングサービス Application Real-Time Monitoring Service (ARMS) の Managed Service for Prometheus が使用されています。 [アラーム] タブが表示されていない場合は、無料のモニタリングサービス CloudMonitor が使用されています。 さまざまな種類のモニタリングおよびアラートサービスの構成方法の詳細については、「デプロイメントのモニタリングとアラート」をご参照ください。

CloudMonitor のアラート機能の ARMS と比較した制限事項は何ですか?
クエリおよび分析ステートメントはサポートされていません。
デプロイメントの現在のメトリックチャートのみが表示されます。 過去のメトリックチャートは使用できません。 これにより、複数ラウンドの最適化中に RPS を比較する際に非効率性が発生します。
サブタスクのメトリックチャートは使用できません。 複数のソースとサブタスクを持つシナリオでは、クラスタリング後に発生したレイテンシの問題を直感的かつ効率的に特定できません。
内部コードのイベントトラッキングを使用して報告されたメトリックを表示することはできません。 これはトラブルシューティングに不便を引き起こす可能性があります。
アラート連絡先を設定または追加するにはどうすればよいですか?
CloudMonitor コンソールまたは ARMS コンソールでアラートルールを構成する場合は、関連するコンソールでアラート連絡先を構成または追加する必要があります。 アラートルールの構成方法の詳細については、「モニタリングアラートの構成」をご参照ください。
ARMS の Managed Service for Prometheus をワークスペースに使用する際に、Realtime Compute for Apache Flink の開発コンソールで単一デプロイメントのメトリックに対してアラートルールを設定した場合、またはデプロイメント失敗イベントに対してアラートルールを設定した場合、アラート連絡先を設定または追加するために次の操作を実行できます。
[アラーム] タブに移動します。
Realtime Compute for Apache Flink の管理コンソールにログオンします。管理するワークスペースを見つけ、[アクション] 列の [コンソール] をクリックします。
Realtime Compute for Apache Flink の開発コンソールの左側のナビゲーションウィンドウで、 を選択します。 [デプロイメント] ページで、目的のデプロイメントを見つけて、デプロイメントの名前をクリックします。
[アラーム] タブをクリックします。
[アラーム] タブで、[アラートルール] タブをクリックします。 [アラートルール] タブの右上隅で、 を選択して、[ルールの作成] パネルに移動します。
アラート連絡先を設定または追加します。
アラート連絡先を追加します。
[通知オブジェクト] パラメーターの横にある [通知オブジェクト管理] をクリックして、連絡先と DingTalk チャットボットを追加します。 DingTalk または Lark チャットボットと Webhook を追加する方法の詳細については、「FAQ」をご参照ください。
電話でアラート連絡先を追加した後、受信者の電話番号が検証に合格していることを確認してください。そうでない場合、構成は有効になりません。[連絡先] タブの連絡先の [電話] 列に [未確認] と表示されている場合は、[未確認] をクリックして検証を完了します。

アラート連絡先を構成します。
[通知オブジェクト] ドロップダウンリストから通知するアラート連絡先を選択します。 アラート連絡先が存在しない場合は、上記の手順に従ってアラート連絡先を追加できます。
Realtime Compute for Apache Flink 用に自動的にアクティブ化される Managed Service for Prometheus を非アクティブ化するにはどうすればよいですか?
ワークスペースの作成時に [従量課金制 Prometheus モニタリングサービス] を選択すると、ARMS が自動的にアクティブ化されます。 Realtime Compute for Apache Flink を監視する必要がなくなった場合は、次の手順を実行して Managed Service for Prometheus を非アクティブ化します。
Prometheus インスタンスをアンインストールして、ワークスペースの Managed Service for Prometheus を非アクティブ化できます。 ワークスペースの Managed Service for Prometheus を非アクティブ化すると、ワークスペース内のすべてのメトリックが破棄されます。 デプロイメントの実行中に例外が発生した場合、例外が最初に発生した時刻を特定できず、アラートを報告できません。 慎重に行ってください。
Managed Service for Prometheus コンソール にログオンします。
左側のナビゲーションウィンドウで、[インスタンス] をクリックして、[インスタンス] ページに移動します。
[タグでフィルタリング] ドロップダウンリストから、管理するワークスペースの ID または名前を選択します。
[インスタンスタイプ] 列の値が [prometheus For Flink Serverless] であるインスタンスを見つけ、[アクション] 列の [アンインストール] をクリックします。
表示されるメッセージで、[OK] をクリックします。
アラートをトリガーしたデプロイメントを見つけるにはどうすればよいですか?
アラートイベントには、ジョブ ID とデプロイメント ID が含まれています。 ただし、デプロイメントのフェールオーバーが発生すると、ジョブ ID が変更されます。 この場合、デプロイメント ID を使用して、エラーが返されたデプロイメントを見つける必要があります。 次のいずれかの方法を使用して、デプロイメント ID を表示できます。
Realtime Compute for Apache Flink の開発コンソール の左側のナビゲーションウィンドウで、[デプロイメント] をクリックします。[デプロイメント] ページで、目的のデプロイメントを見つけ、デプロイメント名をクリックします。[構成] タブの [基本] セクションで、デプロイメント ID を確認します。

デプロイメントの URL でデプロイメント ID を表示します。

デプロイメントの再起動などの問題に対処するために、デプロイメントのアラートルールを構成するにはどうすればよいですか?
Realtime Compute for Apache Flink の開発コンソールで、Realtime Compute for Apache Flink のメトリックに基づいて、デプロイメントのアラートルールを構成できます。 この場合、デプロイメントのフェールオーバーが発生すると、メトリック曲線を表示できず、アラートをトリガーできません。 ビジネスに大きな影響を与えるデプロイメントの再起動などのイベントに対処するために、ARMS コンソールで flink_jobmanager_job_numRestarts メトリックに基づいてカスタムルールを構成し、TaskManager のフェールオーバーに対してアラートをトリガーできます。 flink_jobmanager_job_numRestarts は、瞬間的な変化率を示します。 アラートルールを構成するには、次の手順を実行します。
管理するワークスペースを見つけて、 を選択して、ARMS コンソールに移動します。
ARMS コンソールの左側のナビゲーションウィンドウで、[アラートルール] をクリックします。 [Prometheus アラートルール] ページで、[prometheus アラートルールの作成] をクリックします。
[Prometheus アラートルールの作成] ページで、[チェックタイプ] パラメーターに [カスタム Promql] を選択し、[Prometheus インスタンス] ドロップダウンリストからインスタンスを選択します。
カスタム PromQL ステートメントのコードを記述します。
たとえば、
irate(flink_jobmanager_job_numRestarts{jobId=~"$jobId",deploymentId=~"$deploymentId"}[1m])>0を構成すると、過去 1 分以内の flink_jobmanager_job_numRestarts メトリックのデータがクエリされます。 瞬間的な変化率が 0 より大きい場合、アラートがトリガーされます。[完了] をクリックします。
単一のクラスのログレベルでパラメーターを構成するにはどうすればよいですか?
たとえば、Kafka コネクタを使用する場合、Kafka ソーステーブルに log4j.logger.org.apache.kafka.clients.consumer=trace を指定し、シンクテーブルに log4j.logger.org.apache.kafka.clients.producer=trace を指定する場合、[構成] タブの [ロギング] セクションにある [ログレベル] フィールドにパラメーターを構成する必要があります。 [パラメーター] セクションの [その他の構成] フィールドにパラメーターを構成することはできません。
GC ロギングを有効にするにはどうすればよいですか?
Realtime Compute for Apache Flink の開発コンソールの左側のナビゲーションウィンドウで、 を選択します。 [デプロイメント] ページで、目的のデプロイメントを見つけて、デプロイメントの名前をクリックします。 デプロイメント詳細ページの [構成] タブで、[パラメーター] セクションの右上隅にある [編集] をクリックし、[その他の構成] フィールドに次のコードを追加して、[保存] をクリックして構成を有効にします。
env.java.opts: >-
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/flink/log/gc.log
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=2 -XX:GCLogFileSize=50M
デプロイメントのログを Simple Log Service にエクスポートするためのパラメーターを構成した後に、デプロイメントの起動エラーが報告された場合はどうすればよいですか?
問題の説明
デプロイメントのログを Simple Log Service にエクスポートするためのパラメーターを構成した後、デプロイメントの起動中に 「デプロイメントの起動に失敗しました。 再試行してください。」 というエラーメッセージが表示され、次のエラーメッセージも報告されます。
Unknown ApiException {exceptionType=com.ververica.platform.appmanager.controller.domain.TemplatesRenderException, exceptionMessage=Failed to render {userConfiguredLoggers={}, jobId=3fd090ea-81fc-4983-ace1-0e0e7b******, rootLoggerLogLevel=INFO, clusterName=f7dba7ec27****, deploymentId=41529785-ab12-405b-82a8-1b1d73******, namespace=flinktest-default, priorityClassName=flink-p5, deploymentName=test}} 029999 202312121531-8SHEUBJUJU原因
デプロイメントのログを Simple Log Service にエクスポートするためのパラメーターを構成すると、namespace や deploymentId などの Twig テンプレートの変数の値が変更されます。

解決策
ビジネス要件に基づいてパラメーターを再構成します。 詳細については、「デプロイメントのログをエクスポートするためのパラメーターの構成」をご参照ください。
Realtime Compute for Apache Flink デプロイメントの過去の操作ログを表示、検索、および分析するにはどうすればよいですか?
Realtime Compute for Apache Flink の開発コンソールまたは外部ストレージで、デプロイメントの過去の操作ログを表示および分析できます。
Realtime Compute for Apache Flink の開発コンソールの [ログ] タブでデプロイメントの過去の操作ログを表示および分析する
[構成] タブのログ記録セクションで、[ログアーカイブ] 機能を有効にするには、[ログアーカイブを許可] をオンにし、[ログアーカイブの有効期限] パラメーターを構成します。デフォルトでは、[ログアーカイブを許可] はオンになっています。[ログアーカイブの有効期限] パラメーターは 7 に設定されています。単位:日。システムは最新の 5 MB の操作ログを保持します。

外部ストレージでデプロイメントの過去の操作ログを表示および分析する
Object Storage Service (OSS)、Simple Log Service、Kafka などの外部ストレージにデプロイメントログをエクスポートするためのパラメーターを構成し、エクスポートするログのレベルを指定することもできます。 詳細については、「デプロイメントのログをエクスポートするためのパラメーターの構成」をご参照ください。
静的でないメソッドを使用して生成されたログを Simple Log Service にエクスポートできない問題を解決するにはどうすればよいですか?
問題の説明
Log4j Appender の Logger および Appender のロジックは、Simple Log Service で使用されます。 その結果、静的でないメソッドを使用して生成されたログを Simple Log Service にエクスポートできません。
解決策
静的メソッド
private static final Logger LOG = LoggerFactory.getLogger(xxx.class);を使用します。
Kafka は Realtime Compute for Apache Flink から書き込まれたデータを受信できますが、関連デプロイメントの [ステータス] タブの [受信レコード数] 列の値が 0 の場合はどうすればよいですか?
問題の説明
デプロイメントには 1 つのデータオペレーターしかありません。 ソースオペレーターには入力はなく出力のみがあり、シンクオペレーターには入力のみで出力はありません。 この場合、デプロイメントトポロジーで読み書きされるデータ量を表示できません。
解決策
オペレーターを分割して、デプロイメントトポロジーのデータ量を表示します。 ソースオペレーターとシンクオペレーターをトポロジーから独立したオペレーターとして分割します。 次に、ソースオペレーターとシンクオペレーターを他のオペレーターと個別に接続して、新しいトポロジーを形成します。 新しいトポロジーのデータフローとトラフィックを表示できます。
Realtime Compute for Apache Flink の開発コンソールの左側のナビゲーションウィンドウで、 を選択します。[デプロイメント] ページで、目的のデプロイメントを見つけ、デプロイメント名をクリックします。[構成] タブのデプロイメント詳細ページで、[パラメーター] セクションの右上隅にある [編集] をクリックし、[その他の構成] フィールドに
pipeline.operator-chaining: 'false'構成を追加してオペレーターを分割し、[保存] をクリックして構成を有効にします。
DataStream デプロイメントが遅延していないにもかかわらず、出力データの遅延関連メトリックの値がデプロイメントの遅延を示している場合はどうすればよいですか?
問題の説明
Realtime Compute for Apache Flink のソーステーブルを使用してデータが継続的に読み取られ、Kafka コネクタは ApsaraMQ for Kafka 物理テーブルの各パーティションにデータを継続的に書き込みます。 ただし、DataStream デプロイメントの CurrentEmitEventTimeLag および CurrentFetchEventTimeLag メトリックの値は、デプロイメントが 52 年間遅延していることを示しています。
原因
DataStream デプロイメントの Kafka コネクタは Apache Flink コミュニティによって提供されており、Realtime Compute for Apache Flink でサポートされている組み込みコネクタではありません。 Apache Flink コミュニティでサポートされているコネクタは、メトリックベースのモニタリングをサポートしていません。 その結果、メトリックの値が異常になります。
解決策
Realtime Compute for Apache Flink の組み込みコネクタの依存関係の詳細については、「Maven リポジトリ」をご参照ください。
DataStream デプロイメントの TaskManager ログに NullPointerException エラーが含まれているが、エラースタックの詳細が提供されていない場合はどうすればよいですか?
Realtime Compute for Apache Flink の開発コンソールの左側のナビゲーションウィンドウで、 を選択します。 [デプロイメント] ページで、目的のデプロイメントを見つけて、デプロイメントの名前をクリックします。 デプロイメント詳細ページの [構成] タブで、[パラメーター] セクションの右上隅にある [編集] をクリックし、[その他の構成] フィールドに次のコードを追加して、[保存] をクリックして構成を有効にします。
env.java.opts: "-XX:-OmitStackTraceInFastThrow"