

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS SDK for Java 2.x：綜合指標參考
<a name="metrics-list"></a>

使用 AWS SDK for Java 2.x，您可以從應用程式中的服務用戶端收集指標，然後將這些指標發佈 （輸出） 至 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)。

這些資料表列出您可以收集的指標，以及任何 HTTP 用戶端用量需求。

如需啟用和設定 SDK 指標的詳細資訊，請參閱[啟用 SDK 指標](metrics.md)。

## 每個請求收集的指標
<a name="metrics-perrequest"></a>


| 指標名稱 | 說明 | Type | 
| --- | --- | --- | 
| ApiCallDuration | API 呼叫的持續時間。這包括所有進行的呼叫嘗試。 | 持續時間\* | 
| ApiCallSuccessful | 如果 API 呼叫成功，則為 True，否則為 false。 | Boolean | 
| CredentialsFetchDuration | 擷取 API 呼叫簽署憑證的持續時間。 | 持續時間\* | 
| EndpointResolveDuration | 解析 API 呼叫所用端點的持續時間。 | 持續時間\* | 
| MarshallingDuration | 將 SDK 請求封送至 HTTP 請求的持續時間。 | 持續時間\* | 
| OperationName | 要叫用之服務操作的名稱。 | String | 
| RetryCount | 開發套件在執行請求時執行的重試次數。0 表示請求第一次運作，而且未嘗試任何重試。<br />如需設定重試行為的詳細資訊，請參閱 [重試策略](retry-strategy.md#retry-strategies)。 | Integer | 
| ServiceId | 服務的唯一 ID。 | String | 
| ServiceEndpoint | 服務的端點。 | URI | 
| TokenFetchDuration | 擷取 API 呼叫簽署憑證的持續時間。 | 持續時間\* | 

\*[java.time.Duration](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html)。

## 每次請求嘗試收集的指標
<a name="metrics-perattempt"></a>

在收到回應之前，每個 API 呼叫可能需要多次嘗試。每次嘗試都會收集這些指標。

### 核心指標
<a name="metrics-perattempt-core"></a>


| 指標名稱 | 說明 | Type | 
| --- | --- | --- | 
| AwsExtendedRequestId | 服務請求的延伸請求 ID。 | String | 
| AwsRequestId | 服務請求的請求 ID。 | String | 
| BackoffDelayDuration | 開發套件在此 API 呼叫嘗試之前等待的持續時間。此值是以用戶端上的 `[https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/retries/api/BackoffStrategy.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/retries/api/BackoffStrategy.html)` 集為基礎。如需詳細資訊，請參閱本指南中的[重試策略](retry-strategy.md#retry-strategies)一節。 | 持續時間\* | 
| ErrorType | 呼叫嘗試發生的錯誤類型。<br />以下是可能的值：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/sdk-for-java/latest/developer-guide/metrics-list.html) | String | 
| ReadThroughput | 用戶端的讀取輸送量，定義為 `NumberOfResponseBytesRead / (TTLB - TTFB)`。此值以每秒位元組為單位。<br />請注意，此指標只會測量從 `ResponseTransformer`或 中讀取的位元組`AsyncResponseTransformer`。在轉換器外部讀取的資料，例如回應串流因轉換器而傳回時，不會包含在計算中。 | Double | 
| WriteThroughput | 用戶端的寫入輸送量，定義為 `RequestBytesWritten / (LastByteWrittenTime - FirstByteWrittenTime)`。此值以每秒位元組為單位。<br />此指標會測量 SDK 向 HTTP 用戶端提供請求內文的速率。它不包括連線設定、TLS 交握時間和伺服器處理時間。只有具有串流內文的請求，例如 S3 PutObject，才會報告此指標。<br />請注意，此指標不會考慮 HTTP 用戶端層中的緩衝。如果 HTTP 用戶端在傳送之前緩衝資料，實際的網路傳輸速率可能會較低。此指標代表網路輸送量的上限。 | Double | 
| ServiceCallDuration | 連線到服務 （或從連線集區取得連線）、傳送序列化請求和接收初始回應 （例如 HTTP 狀態碼和標頭） 的持續時間。這不包括從服務讀取整個回應的時間。 | 持續時間\* | 
| SigningDuration | 簽署 HTTP 請求的持續時間。 | 持續時間\* | 
| TimeToFirstByte | 從傳送 HTTP 請求 （包括取得連線） 到 服務，以及接收回應中第一個位元組標頭的持續時間。 | 持續時間\* | 
| TimeToLastByte | 從傳送 HTTP 請求 （包括取得連線） 到 服務，以及接收回應最後一個位元組的持續時間。<br />請注意，對於傳回串流回應APIs，此指標會跨越 `ResponseTransformer`或 `AsyncResponseTransformer`完成之前的時間。 | 持續時間\* | 
| UnmarshallingDuration | 取消封送 HTTP 回應至 SDK 回應的持續時間。<br />注意：對於串流操作，這不包括讀取回應承載的時間。 | 持續時間\* | 

\*[java.time.Duration](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html)。

### HTTP 指標
<a name="metrics-perattempt-http"></a>


| 指標名稱 | 說明 | Type | 需要 HTTP 用戶端\* | 
| --- | --- | --- | --- | 
| AvailableConcurrency | HTTP 用戶端支援的額外並行請求數量，無需建立與目標伺服器的新連線。<br />對於 HTTP/1 操作，這等於使用 服務建立的閒置 TCP 連線數。對於 HTTP/2 操作，這等於閒置串流的數量。<br />注意：此值因 HTTP 用戶端實作而異：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/sdk-for-java/latest/developer-guide/metrics-list.html)<br />此值的範圍為個別 HTTP 用戶端執行個體，並排除來自相同 JVM 中其他 HTTP 用戶端的並行。 | Integer | Apache、Netty、CRT | 
| ConcurrencyAcquireDuration | 從連線集區取得頻道的持續時間。<br />對於 HTTP/1 操作，頻道等於 TCP 連線。對於 HTTP/2 操作，頻道等於 HTTP/2 串流頻道。<br />取得新頻道可能包括下列時間：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/sdk-for-java/latest/developer-guide/metrics-list.html) | 持續時間\* | Apache、Netty、CRT | 
| HttpClientName | 用於請求的 HTTP 名稱。 | String | Apache、Netty、CRT | 
| HttpStatusCode | HTTP 回應的狀態碼。 | Integer | 任何 | 
| LeasedConcurrency | HTTP 用戶端目前執行的請求數量。<br />對於 HTTP/1 操作，這等於與服務的作用中 TCP 連線數 （閒置連線除外）。對於 HTTP/2 操作，這等於服務作用中 HTTP 串流的數量 （閒置串流容量除外）。<br />注意：此值因 HTTP 用戶端實作而異：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/sdk-for-java/latest/developer-guide/metrics-list.html)<br />此值的範圍為個別 HTTP 用戶端執行個體，並排除來自相同 JVM 中其他 HTTP 用戶端的並行。 | Integer | Apache、Netty、CRT | 
| LocalStreamWindowSize | 執行此請求之串流的本機 HTTP/2 視窗大小，以位元組為單位。 | Integer | Netty | 
| MaxConcurrency | HTTP 用戶端支援的並行請求數目上限。<br />對於 HTTP/1 操作，這等於 HTTP 用戶端可以集區的最大 TCP 連線數。對於 HTTP/2 操作，這等於 HTTP 用戶端可以集區的最大串流數量。<br />注意：此值因 HTTP 用戶端實作而異：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/sdk-for-java/latest/developer-guide/metrics-list.html)<br />此值的範圍為個別 HTTP 用戶端執行個體，並排除來自相同 JVM 中其他 HTTP 用戶端的並行。 | Integer | Apache、Netty、CRT | 
| PendingConcurrencyAcquires | 等待來自 HTTP 用戶端並行的請求數量。<br />對於 HTTP/1 操作，這等於等待 TCP 連線從連線集區建立或傳回的請求數目。對於 HTTP/2 操作，這等於從連線集區等待新串流 （可能為新的 HTTP/2 連線） 的請求數量。<br />注意：此值因 HTTP 用戶端實作而異：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/sdk-for-java/latest/developer-guide/metrics-list.html)<br />此值的範圍為個別 HTTP 用戶端執行個體，並排除來自相同 JVM 中其他 HTTP 用戶端的並行。 | Integer | Apache、Netty、CRT | 
| RemoteStreamWindowSize | 執行此請求之串流的遠端 HTTP/2 視窗大小，以位元組為單位。 | Integer | Netty | 

\*[java.time.Duration](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html)。

資料欄中使用的術語表示：
+ Apache：以 Apache 為基礎的 HTTP 用戶端 (`[ApacheHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/apache/ApacheHttpClient.html)`)
+ Netty：以 Netty 為基礎的 HTTP 用戶端 (`[NettyNioAsyncHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/nio/netty/NettyNioAsyncHttpClient.html)`)
+ CRT：以 AWS CRT 為基礎的 HTTP 用戶端 (`[AwsCrtAsyncHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/crt/AwsCrtAsyncHttpClient.html)`)
+ 任何：指標資料的集合不依賴於 HTTP 用戶端；這包括 URLConnection 型 HTTP 用戶端 (`[UrlConnectionHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/urlconnection/UrlConnectionHttpClient.html)`)