AWS SDK for Java 2.x: 包括的なメトリクスのリファレンス - AWS SDK for Java 2.x

AWS SDK for Java 2.x: 包括的なメトリクスのリファレンス

AWS SDK for Java 2.x では、アプリケーションのサービスクライアントからメトリクスを収集し、それらのメトリクスを Amazon CloudWatch に発行 (出力) できます。

これらのテーブルは、収集できるメトリクスと HTTP クライアントの使用要件を示しています。

SDK のメトリクスの有効化と設定の詳細については、SDK メトリクスの有効化を参照してください。

各リクエストで収集されたメトリクス

メトリクス名 説明 タイプ

ApiCallDuration

API コールが行われた時間。これには、試行されたすべての呼び出しが含まれます。

時間*

ApiCallSuccessful

API コールが成功した場合は true、それ以外の場合は false。

ブール値

CredentialsFetchDuration

API コールの署名認証情報を取得するまでの時間。

時間*

EndpointResolveDuration API コールに使用されるエンドポイントを解決するまでの時間。 時間*

MarshallingDuration

SDK リクエストを HTTP リクエストにマーシャリングするまでの時間。

時間*

OperationName

呼び出されるサービスオペレーションの名前。

文字列

RetryCount

SDK がリクエストの実行中に再試行した回数。0 は、リクエストが最初に成功し、再試行されなかったことを意味します。

再試行動作の設定については、「再試行戦略」を参照してください。

整数

ServiceId

サービスの一意の ID。

文字列

ServiceEndpoint

サービスのエンドポイント。

[URI]

TokenFetchDuration

API コールの署名認証情報を取得するまでの時間。 時間*

*java.time.Duration.

リクエストの各試行について収集されたメトリクス

各 API コールでは、レスポンスが受信されるまでに複数回試行する必要がある場合があります。これらのメトリクスは、各試行について収集されます。

コアメトリクス

メトリクス名 説明 タイプ

AwsExtendedRequestId

サービスリクエストの拡張リクエスト ID。

文字列

AwsRequestId

サービスリクエストのリクエスト ID。

文字列

BackoffDelayDuration

この API コールが試行される前に SDK が待機した時間。値は、クライアントで設定された BackoffStrategy に基づきます。詳細については、このガイドの「再試行戦略」セクションを参照してください。

時間*

ErrorType

呼び出しの試行で発生したエラーのタイプ。

以下の値を指定できます。

  • Throttling: サービスがスロットリングエラーで応答しました。

  • ServerError: サービスがスロットリング以外のエラーで応答しました。

  • ConfiguredTimeout: API コールレベルまたは API コール試行レベルでクライアントのタイムアウトが発生しました。

  • IO: API エラーが発生しました。

  • Other: 上記のカテゴリリストのに該当しないその他のエラーです。

文字列
ReadThroughput

NumberOfResponseBytesRead / (TTLB - TTFB) として定義されるクライアントの読み取りスループット。この値は 1 秒あたりのバイト数です。

このメトリクスは、 ResponseTransformer または AsyncResponseTransformer 内から読み取られたバイトのみを測定することに注意してください。トランスフォーマーの結果としてレスポンスストリームが返される場合など、トランスフォーマーの外部で読み取られるデータは計算に含まれません。

ダブル

ServiceCallDuration

サービスへの接続 (または接続プールからの接続の取得)、シリアル化されたリクエストの送信、最初のレスポンス (HTTP ステータスコードやヘッダーなど) の受信にかかる時間。これには、サービスからレスポンス全体を読み取る時間は含まれません。

時間*

SigningDuration

HTTP リクエストに署名するまでの時間。

時間*

TimeToFirstByte サービスへの HTTP リクエストの送信 (接続の取得を含む) から、レスポンス内のヘッダーの最初のバイトを受信するまでの時間。 時間*
TimeToLastByte

サービスへの HTTP リクエストの送信 (接続の取得を含む) から、レスポンス内の最後のバイトを受信するまでの時間。

ストリーミングレスポンスを返す API の場合、このメトリクスは ResponseTransformer または AsyncResponseTransformer が完了するまでが対象となります。

時間*

UnmarshallingDuration

SDK 応答に対する HTTP 応答のマーシャリングを解除するまでの時間。

注: ストリーミングオペレーションの場合、これにはレスポンスのペイロードを読み取る時間は含まれません。

時間*

*java.time.Duration.

HTTP メトリクス

メトリクス名 説明 タイプ HTTP クライアントが必須です*

AvailableConcurrency

ターゲットサーバーへの新しい接続を確立せずに HTTP クライアントがサポートできる追加の同時リクエストの数。

HTTP/1 オペレーションの場合、これはサービスで確立されたアイドル状態の TCP 接続の数に等しくなります。HTTP/2 オペレーションの場合、これはアイドルストリームの数に等しくなります。

注: この値は HTTP クライアントの実装によって異なります。

  • Apache クライアント: 値は HTTP クライアント全体に適用されます。

  • Netty クライアント: 値はエンドポイントごとに適用されます。

  • AWS CRT ベースのクライアント: 値はエンドポイントごとに適用されます

値は個々の HTTP クライアントインスタンスに限定され、同じ JVM 内の他の HTTP クライアントからの同時実行を除外します。

整数

アパッチ、Netty、CRT

ConcurrencyAcquireDuration

接続プールからチャンネルを取得するまでの時間。

HTTP/1 オペレーションの場合、チャネルは TCP 接続に等しくなります。HTTP/2 オペレーションの場合、チャネルは HTTP/2 ストリームチャネルに等しくなります。

新しいチャネルの取得には、次の時間が含まれる場合があります。

  1. クライアントの最大同時実行数設定によって制限されている同時実行の許可を待つ時間。

  2. プールに既存の接続がない場合は、新しい接続を確立する時間。

  3. TLS が有効になっている場合に、TLS ハンドシェイクとネゴシエーションを実行する時間。

時間*

アパッチ、Netty、CRT

HttpClientName

リクエストに使用されている HTTP の名前。

文字列

アパッチ、Netty、CRT

HttpStatusCode

HTTP レスポンスの ステータスコード。

整数

いずれか

LeasedConcurrency

HTTP クライアントが現在実行しているリクエストの数。

HTTP/1 オペレーションの場合、これは サービスとのアクティブな TCP 接続の数 (アイドル接続を除く) に等しくなります。HTTP/2 オペレーションの場合、これはサービスに対してアクティブな HTTP ストリームの数に等しくなります (アイドルストリーム容量を除く)。

注: この値は HTTP クライアントの実装によって異なります。

  • Apache クライアント: 値は HTTP クライアント全体に適用されます。

  • Netty クライアント: 値はエンドポイントごとに適用されます。

  • AWS CRT ベースのクライアント: 値はエンドポイントごとに適用されます

値は個々の HTTP クライアントインスタンスに限定され、同じ JVM 内の他の HTTP クライアントからの同時実行を除外します。

整数

アパッチ、Netty、CRT

LocalStreamWindowSize

このリクエストを実行したストリームのローカル HTTP/2 ウィンドウサイズ (バイト)。

整数

Netty

MaxConcurrency

HTTP クライアントによってサポートされる同時リクエストの最大数。

HTTP/1 オペレーションの場合、これは HTTP クライアントがプールできる TCP 接続の最大数に等しくなります。HTTP/2 オペレーションの場合、これは HTTP クライアントがプールできるストリームの最大数に等しくなります。

注: この値は HTTP クライアントの実装によって異なります。

  • Apache クライアント: 値は HTTP クライアント全体に適用されます。

  • Netty クライアント: 値はエンドポイントごとに適用されます。

  • AWS CRT ベースのクライアント: 値はエンドポイントごとに適用されます

値は個々の HTTP クライアントインスタンスに限定され、同じ JVM 内の他の HTTP クライアントからの同時実行を除外します。

整数

アパッチ、Netty、CRT

PendingConcurrencyAcquires

HTTP クライアントからの同時実行を待機するリクエストの数。

HTTP/1 のオペレーションの場合、これは TCP 接続の確立待を待っている、または接続プールからの返却を待っているリクエスト数に等しくなります。HTTP/2 オペレーションの場合、これは接続プールからの新しいストリーム (場合によっては新しい HTTP/2 接続) を待っているリクエストの数に等しくなります。

注: この値は HTTP クライアントの実装によって異なります。

  • Apache クライアント: 値は HTTP クライアント全体に適用されます。

  • Netty クライアント: 値はエンドポイントごとに適用されます。

  • AWS CRT ベースのクライアント: 値はエンドポイントごとに適用されます

値は個々の HTTP クライアントインスタンスに限定され、同じ JVM 内の他の HTTP クライアントからの同時実行を除外します。

整数

アパッチ、Netty、CRT

RemoteStreamWindowSize

このリクエストを実行したストリームのリモート HTTP/2 ウィンドウサイズ (バイト)

整数

Netty

*java.time.Duration.

列で使用されている用語の意味は以下のとおりです。

  • Apache: アパッチベースの HTTP クライアント (ApacheHttpClient)

  • Netty: Netty ベースの HTTP クライアント (NettyNioAsyncHttpClient)

  • CRT: AWS CRT ベースの HTTP クライアント (AwsCrtAsyncHttpClient)

  • 任意:メトリクスデータの収集は HTTP クライアントに依存しません。これには URLConnection ベースの HTTP クライアント (UrlConnectionHttpClient) も含まれます。