

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Managed Service for Apache Flink でのモニタリング
<a name="monitoring"></a>

実稼働環境でストリーミング アプリケーションを実行する場合は、アプリケーションを継続的かつ無期限に実行するように設定します。Flink アプリケーションだけでなく、すべてのコンポーネントのモニターと適切なアラームを実装することが重要です。そうでなければ、新たな問題を早期に見逃してしまい、運用上の事件が完全に解明され、軽減することがはるかに難しくなってしまうと気付くリスクがあります。一般的に監視すべき事項は次のとおりです。
+ ソースはデータを取り込んでいますか。
+ データはソース(ソースの観点から)から読み込まれていますか。
+ Flinkアプリケーションはデータを受信していますか?
+ Flinkアプリケーションは対応できるのか、それとも遅れていますか。
+ Flinkアプリケーションは(アプリケーションの観点から)データをシンクに永続化していますか?
+ シンクはデータを受信していますか?

その場合は、Flinkアプリケーションについてより具体的なメトリクスを検討する必要があります。この[CloudWatch ダッシュボード](https://github.com/aws-samples/kda-metrics-dashboard)はいい出発点となります。実稼働アプリケーションのモニタリング対象となるメトリクスの詳細については、　[Amazon Managed Service for Apache Flink で CloudWatch アラームを使用する](monitoring-metrics-alarms.md)　を参照してください。これらのメトリクスには次のものが含まれます。
+ **records\$1lag\$1max**と**MillisBehindLatest** — アプリケーションが Kinesis または Kafka からデータを消費している場合、これらのメトリックは、アプリケーションが遅れていて、現在の負荷に対応するためにスケーリングする必要があるかどうかを示します。これは、あらゆる種類のアプリケーションで追跡しやすい汎用的な指標です。しかし、これはリアクティブスケーリング、つまりアプリケーションがすでに遅れている場合にのみ使用できます。
+ **cpuUtilization**と**heapMemoryUtilization** - これらのメトリクスは、アプリケーションの全体的なリソース使用率を適切に示して、アプリケーションがI/Oバインド出ない限り、プロアクティブなスケーリングに使用できます。
+ **ダウンタイム** — ダウンタイムがゼロより大きい場合は、アプリケーションに障害が発生したことを示します。値が0より大きい場合、アプリケーションはデータを処理していません。
+ **LastCheckpointSize** と *LastCheckpointDuration *— これらのメトリクスは、状態に保存されているデータ量と、チェックポイントの取得にかかる時間を監視します。チェックポイントが増えたり、時間がかかったりしても、アプリケーションはチェックポイント処理に時間を費やし続けて、実際の処理のサイクルは少なくなります。場合によっては、チェックポイントが増えすぎたり、時間がかかりすぎて失敗したりすることがあります。絶対値を監視することに加えて、顧客は`RATE(lastCheckpointSize)`と`RATE(lastCheckpointDuration)`による変化率の監視を検討する必要もあります。
+ **NumberOfFailedCheckpoints** — このメトリックは、アプリケーションの起動以降に失敗したチェックポイントの数をカウントします。アプリケーションによっては、チェックポイントが失敗することがあっても許容できる場合があります。ただし、チェックポイントが定期的に失敗する場合は、アプリケーションが異常である可能性が高く、注意深く見ることが必要です。絶対値ではなく勾配でアラームを出すようにモニタリング`RATE(numberOfFailedCheckpoints)`をお勧めします。