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

호출 중인 서비스 작업의 이름입니다.

String

RetryCount

SDK가 요청 실행 시 수행한 재시도 횟수입니다. 0은 요청이 처음 작동했고 재시도가 시도되지 않았음을 의미합니다.

재시도 동작 구성에 대한 자세한 내용은 재시도 전략 섹션을 참조하세요.

Integer

ServiceId

서비스의 고유 ID입니다.

String

ServiceEndpoint

서비스의 엔드포인트입니다.

URI

TokenFetchDuration

API 호출용 서명 자격 증명을 가져오는 지속 시간입니다. 지속 시간*

*java.time.Duration.

각 요청 시도에 대해 수집된 지표

응답을 수신하려면 각 API 호출에 여러 번 시도해야 할 수 있습니다. 이 지표는 각 요청 시도에 대해 수집됩니다.

주요 지표

메트릭 이름 설명 형식

AwsExtendedRequestId

서비스 요청의 확장 요청 ID입니다.

String

AwsRequestId

서비스 요청의 요청 ID입니다.

String

BackoffDelayDuration

이 API 호출을 시도하기 전에 SDK가 대기한 지속 시간입니다. 값은 클라이언트에 설정된 BackoffStrategy를 기반으로 합니다. 자세한 내용은 이 가이드의 재시도 전략 섹션을 참조하세요.

지속 시간*

ErrorType

호출 시도에서 발생한 오류 유형입니다.

유효한 값은 다음과 같습니다.

  • Throttling: 서비스가 스로틀링 오류로 응답했습니다.

  • ServerError: 서비스가 스로틀링 이외의 오류로 응답했습니다.

  • ConfiguredTimeout: API 호출 수준 또는 API 호출 시도 수준에서 클라이언트 제한 시간이 발생했습니다.

  • IO: I/O 오류가 발생했습니다.

  • Other: 위의 범주 목록 중 하나에 속하지 않는 다른 오류의 경우 Catch-all입니다.

String
ReadThroughput

NumberOfResponseBytesRead / (TTLB - TTFB)로 정의된 클라이언트의 읽기 처리량입니다. 이 값은 초당 바이트 단위입니다.

이 지표는 ResponseTransformer 또는 AsyncResponseTransformer 내에서 읽은 바이트만 측정합니다. 응답 스트림이 변환기의 결과로 반환되는 경우와 같이 변환기 외부에서 읽는 데이터는 계산에 포함되지 않습니다.

Double

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 클라이언트에서 동시성을 제외합니다.

Integer

Apache, Netty, CRT

ConcurrencyAcquireDuration

연결 풀에서 채널을 획득하는 데 걸린 지속 시간입니다.

HTTP/1 작업의 경우 채널은 TCP 연결과 같습니다. HTTP/2 작업의 경우 채널은 HTTP/2 스트림 채널과 같습니다.

새 채널을 획득하는 데 다음과 같은 시간이 포함될 수 있습니다.

  1. 클라이언트의 최대 동시성 구성으로 제한되는 동시성 허용 대기 시간입니다.

  2. 풀에서 기존 연결을 사용할 수 없는 경우 새 연결을 설정합니다.

  3. TLS가 사용 설정된 경우 TLS 핸드셰이크 및 협상을 수행합니다.

지속 시간*

Apache, Netty, CRT

HttpClientName

요청에 사용 중인 HTTP의 이름입니다.

String

Apache, Netty, CRT

HttpStatusCode

HTTP 응답의 상태 코드입니다.

Integer

임의

LeasedConcurrency

HTTP 클라이언트에서 실행하는 요청 수입니다.

HTTP/1 작업의 경우 서비스와의 활성 TCP 연결 수와 같습니다(유휴 연결 제외). HTTP/2 작업의 경우 서비스가 포함된 활성 HTTP 스트림 수와 같습니다(유휴 스트림 용량 제외).

참고: 이 값은 HTTP 클라이언트 구현에 따라 다릅니다.

  • Apache 클라이언트: 값이 전체 HTTP 클라이언트에 적용됨

  • Netty 클라이언트: 엔드포인트당 값이 적용됨

  • AWS CRT 기반 클라이언트: 엔드포인트당 값이 적용됨

값은 개별 HTTP 클라이언트 인스턴스로 범위가 지정되며 동일한 JVM의 다른 HTTP 클라이언트에서 동시성을 제외합니다.

Integer

Apache, Netty, CRT

LocalStreamWindowSize

이 요청이 실행되는 스트림의 로컬 HTTP/2 창 크기(바이트)입니다.

Integer

Netty

MaxConcurrency

HTTP 클라이언트가 지원하는 최대 동시 요청 수입니다.

HTTP/1 작업의 경우 HTTP 클라이언트가 풀링할 수 있는 최대 TCP 연결 수와 같습니다. HTTP/2 작업의 경우 HTTP 클라이언트가 풀링할 수 있는 최대 스트림 수와 같습니다.

참고: 이 값은 HTTP 클라이언트 구현에 따라 다릅니다.

  • Apache 클라이언트: 값이 전체 HTTP 클라이언트에 적용됨

  • Netty 클라이언트: 엔드포인트당 값이 적용됨

  • AWS CRT 기반 클라이언트: 엔드포인트당 값이 적용됨

값은 개별 HTTP 클라이언트 인스턴스로 범위가 지정되며 동일한 JVM의 다른 HTTP 클라이언트에서 동시성을 제외합니다.

Integer

Apache, Netty, CRT

PendingConcurrencyAcquires

HTTP 클라이언트의 동시성을 기다리는 요청 수입니다.

HTTP/1 작업의 경우 TCP 연결이 연결 풀에서 설정되거나 반환될 때까지 대기하는 요청 수와 같습니다. HTTP/2 작업의 경우 연결 풀에서 새 스트림(및 가능한 경우 새 HTTP/2 연결)을 기다리는 요청 수와 같습니다.

참고: 이 값은 HTTP 클라이언트 구현에 따라 다릅니다.

  • Apache 클라이언트: 값이 전체 HTTP 클라이언트에 적용됨

  • Netty 클라이언트: 엔드포인트당 값이 적용됨

  • AWS CRT 기반 클라이언트: 엔드포인트당 값이 적용됨

값은 개별 HTTP 클라이언트 인스턴스로 범위가 지정되며 동일한 JVM의 다른 HTTP 클라이언트에서 동시성을 제외합니다.

Integer

Apache, Netty, CRT

RemoteStreamWindowSize

이 요청이 실행되는 스트림의 원격 HTTP/2 창 크기(바이트)입니다.

Integer

Netty

*java.time.Duration.

열에 사용된 용어의 의미는 다음과 같습니다.