AWS SDK for Java 2.x から SDK メトリクスを公開する
AWS SDK for Java 2.x を使用すると、アプリケーション内のサービスクライアントとリクエストに関するメトリクスを収集し、Amazon CloudWatch Logs の出力を分析して、それに基づいて対応できます。
デフォルトでは、SDK でメトリクスの収集が無効になっています。このトピックは、それを有効にして設定するのに役立ちます。
SDK メトリクスの使用開始
アプリケーションでメトリクス収集を有効にするには、ユースケースに基づいて MetricPublisher インターフェイスの適切な実装を選択し、詳細なセットアップ手順に従います。
長時間実行されるアプリケーションの場合
-
詳細なセットアップ手順、コード例、および設定オプションについては、「長時間実行されるアプリケーションから SDK メトリクスを公開する」を参照してください。
AWS Lambda 関数での場合
-
詳細なセットアップ手順、依存関係、Lambda 固有の設定については、「 AWS Lambda 関数の SDK メトリクスを公開する」を参照してください。
トラブルシューティングとコンソール出力の場合
-
LoggingMetricPublisherを使用する -
セットアップ手順、フォーマットオプション、ローカル開発とトラブルシューティングの例については、「開発とデバッグのためにコンソールに SDK メトリクスを出力する」を参照してください。
クイック実装プレビュー
各ユースケースでメトリクスを有効にする場合の例です。
長時間実行されるアプリケーション
MetricPublisher metricsPub = CloudWatchMetricPublisher.create(); DynamoDbClient ddb = DynamoDbClient.builder() .overrideConfiguration(c -> c.addMetricPublisher(metricsPub)) .build();
Lambda 関数
EmfMetricLoggingPublisher emfPublisher = EmfMetricLoggingPublisher.builder() .namespace("MyApp") .build(); DynamoDbClient dynamoDb = DynamoDbClient.builder() .overrideConfiguration(c -> c.addMetricPublisher(emfPublisher)) .build();
開発とデバッグ
MetricPublisher loggingPublisher = LoggingMetricPublisher.create(); S3Client s3 = S3Client.builder() .overrideConfiguration(c -> c.addMetricPublisher(loggingPublisher)) .build();
AWS CRT ベースの S3 クライアントのメトリクス制限
AWS CRT ベースの S3 クライアントは、現在 SDK メトリクス収集をサポートしていません。AWS CRT ベースの S3 クライアントインスタンスのビルダーである S3CrtAsyncClientBuilder
メトリクスが利用可能になるまでの時間
メトリクスは通常、SDK for Java によって発行されてから 5 ~ 10 分以内に利用可能になります。正確で最新のメトリクスを利用するには、Java アプリケーションからメトリクスが発行されてから 10 分以上経過後、Cloudwatch を確認してください。
収集される情報
メトリクスの収集には、次のものが含まれます。
-
API リクエストの数 (成功したか、失敗したかを含む)
-
API リクエストで呼び出す AWS のサービス に関する情報 (返された例外を含む)
-
Marshalling、Signing、HTTP リクエストなどのさまざまな操作の期間
-
開いている接続の数、保留中のリクエストの数、使用されている HTTP クライアントの名前などの HTTP クライアントのメトリクス
注記
使用可能なメトリクスは、HTTP クライアントによって異なります。
詳細なリストについては、サービスクライアントのメトリクスを参照してください。
この情報の使用方法
SDK が収集するメトリクスを使用して、アプリケーションのサービスクライアントをモニタリングできます。全体的な使用傾向の確認や、異常の特定ができるほか、返されたサービスクライアントの例外を確認したり、特定の問題を理解するために詳しく確認したりすることもできます。Amazon CloudWatch Logs を使用して、定義した条件にアプリケーションが達するとすぐに通知するアラームを作成することもできます。
詳細については、「Amazon CloudWatch ユーザーガイド」の「Amazon CloudWatch メトリクスの使用」と「Amazon CloudWatch Logs アラームの使用」を参照してください。