기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
의 SDK 지표 사용 AWS SDK for Java
AWS SDK for Java 2.x를 사용하면 애플리케이션의 서비스 클라이언트에 대한 지표를 수집하고 출력을 분석한 Amazon CloudWatch다음 조치를 취할 수 있습니다.
기본적으로 지표 수집은에서 비활성화됩니다SDK. 이 항목은 활성화하고 구성하는 데 도움이 됩니다.
사전 조건
지표를 활성화하고 사용하려면 먼저 다음 단계를 완료해야 합니다.
-
AWS SDK for Java 2.x 설정의 단계를 수행하세요.
-
AWS SDK for Java버전
2.14.0
또는 그 이상의 버전을 사용하도록 프로젝트 종속성(예:pom.xml
또는build.gradle
파일)을 구성하세요.에 지표 게시를 활성화하려면 프로젝트 종속성에 버전 번호
2.14.0
이상이 포함된 CloudWatch도 포함합니다 artifactIdcloudwatch-metric-publisher
.예제:
<project> <dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.27.21</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>cloudwatch-metric-publisher</artifactId> </dependency> </dependencies> </project>
-
Java용가 지표를 작성할 수 있도록 지표 게시자가 사용하는 IAM 자격 증명에 SDK 대한
cloudwatch:PutMetricData
권한을 활성화합니다.
지표 수집을 활성화하는 방법
서비스 클라이언트 또는 개별 요청에 대해 애플리케이션에서 지표를 활성화할 수 있습니다.
특정 요청에 대한 지표 활성화
다음 클래스는 요청에 대해 CloudWatch 지표 게시자를 활성화하는 방법을 보여줍니다 Amazon DynamoDB. 기본 메트릭 게시자 구성을 사용합니다.
import software.amazon.awssdk.metrics.MetricPublisher; import software.amazon.awssdk.metrics.publishers.cloudwatch.CloudWatchMetricPublisher; import software.amazon.awssdk.services.dynamodb.DynamoDbClient; import software.amazon.awssdk.services.dynamodb.model.ListTablesRequest; public class DefaultConfigForRequest { // Use one MetricPublisher for your application. It can be used with requests or service clients. static MetricPublisher metricsPub = CloudWatchMetricPublisher.create(); public static void main(String[] args) { DynamoDbClient ddb = DynamoDbClient.create(); // Publish metrics the for ListTables operation. ddb.listTables(ListTablesRequest.builder() .overrideConfiguration(c -> c.addMetricPublisher(metricsPub)) .build()); // Perform more work in your application. // A MetricsPublisher has its own lifecycle independent of any service client or request that uses it. // If you no longer need the publisher, close it to free up resources. metricsPub.close(); // All metrics stored in memory are flushed to CloudWatch. // Perform more work with the DynamoDbClient instance without publishing metrics. // Close the service client when you no longer need it. ddb.close(); } }
중요
서비스 클라이언트를 더 이상 사용하지 않을 때 애플리케이션이 MetricPublisher
인스턴스close
에서를 호출하는지 확인합니다. 이렇게 하지 않으면 스레드 또는 파일 설명자 누출이 발생할 수 있습니다.
특정 서비스 클라이언트에 대한 요약 지표 활성화
다음 코드 조각은 서비스 클라이언트에 대한 기본 설정으로 CloudWatch 지표 게시자를 활성화하는 방법을 보여줍니다.
MetricPublisher metricsPub = CloudWatchMetricPublisher.create(); DynamoDbClient ddb = DynamoDbClient.builder() .overrideConfiguration(c -> c.addMetricPublisher(metricsPub)) .build();
지표 게시자 사용자 지정
다음 클래스는 특정 서비스 클라이언트에 대한 지표 게시자에 대한 사용자 지정 구성을 설정하는 방법을 보여줍니다. 사용자 지정에는 특정 프로필 로드, 지표 게시자가 요청을 보내는 AWS 리전 지정, 게시자가 지표를 보내는 빈도 사용자 지정이 포함됩니다 CloudWatch.
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider; import software.amazon.awssdk.core.metrics.CoreMetric; import software.amazon.awssdk.metrics.MetricPublisher; import software.amazon.awssdk.metrics.publishers.cloudwatch.CloudWatchMetricPublisher; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.cloudwatch.CloudWatchAsyncClient; import software.amazon.awssdk.services.dynamodb.DynamoDbClient; import java.time.Duration; public class CustomConfigForDDBClient { // Use one MetricPublisher for your application. It can be used with requests or service clients. static MetricPublisher metricsPub = CloudWatchMetricPublisher.builder() .cloudWatchClient(CloudWatchAsyncClient.builder() .region(Region.US_WEST_2) .credentialsProvider(ProfileCredentialsProvider.create("cloudwatch")) .build()) .uploadFrequency(Duration.ofMinutes(5)) .maximumCallsPerUpload(100) .namespace("ExampleSDKV2Metrics") .detailedMetrics(CoreMetric.API_CALL_DURATION) .build(); public static void main(String[] args) { DynamoDbClient ddb = DynamoDbClient.builder() .overrideConfiguration(c -> c.addMetricPublisher(metricsPub)) .build(); // Publish metrics for DynamoDB operations. ddb.listTables(); ddb.describeEndpoints(); ddb.describeLimits(); // Perform more work in your application. // A MetricsPublisher has its own lifecycle independent of any service client or request that uses it. // If you no longer need the publisher, close it to free up resources. metricsPub.close(); // All metrics stored in memory are flushed to CloudWatch. // Perform more work with the DynamoDbClient instance without publishing metrics. // Close the service client when you no longer need it. ddb.close(); } }
이전 코드 조각에 표시된 사용자 지정은 다음과 같은 효과가 있습니다.
-
메
cloudWatchClient
서드를 사용하면 지표를 전송하는 데 사용되는 CloudWatch 클라이언트를 사용자 지정할 수 있습니다. 이 예제에서는 클라이언트가 지표를 전송하는 us-east-1 기본값과 다른 리전을 사용합니다. 또한 요청을 인증하는 데 자격 증명이 사용되는 다른 명명된 프로필인 cloudwatch도 사용합니다 CloudWatch. 이러한 자격 증명에는에 대한 권한이 있어야 합니다cloudwatch:PutMetricData
. -
메
uploadFrequency
서드를 사용하면 지표 게시자가 지표를 업로드하는 빈도를 지정할 수 있습니다 CloudWatch. 기본값은 1분에 한 번입니다. -
maximumCallsPerUpload
메서드는 업로드당 수행된 호출 수를 제한합니다. 기본값은 무제한입니다. -
기본적으로 Java 2.xSDK용는 네임스페이스 아래에 지표를 게시합니다
AwsSdk/JavaSdk2
.namespace
메서드를 사용하여 다른 값을 지정할 수 있습니다. -
기본적으로 SDK는 요약 지표를 게시합니다. 요약 지표는 평균, 최소값, 최대값, 합계 및 샘플 수로 구성됩니다.
detailedMetrics
메서드에 하나 이상의 SDK 지표를 지정하면 SDK는 각 지표에 대한 추가 데이터를 게시합니다. 이 추가 데이터를 사용하면 p90 및 p99와 같은 백분위수 통계를 쿼리할 수 있습니다 CloudWatch. 세부 지표는 SDK 클라이언트 요청의 end-to-end 지연 시간을APICallDuration
측정하는와 같은 지연 시간 지표에 특히 유용합니다.CoreMetric
클래스의 필드를 사용하여 다른 일반적인 SDK 지표를 지정할 수 있습니다.
지표는 언제 사용할 수 있나요?
지표는 일반적으로 JavaSDK용에서 지표를 내보낸 후 5~10분 이내에 사용할 수 있습니다. Java 애플리케이션에서 지표를 내보낸 후 최소 10분 후에 Cloudwatch에서 정확한 up-to-date 지표를 확인하세요.
어떤 정보가 수집되나요?
지표 수집에는 다음이 포함됩니다.
-
성공 또는 실패 여부를 포함한 API 요청 수
-
반환된 예외를 포함하여 API 요청에서 호출하는 AWS 서비스에 대한 정보
-
마샬링, 서명 및 HTTP 요청과 같은 다양한 작업의 기간
-
HTTP 열린 연결 수, 보류 중인 요청 수, 사용된 클라이언트 이름과 같은 HTTP 클라이언트 지표
참고
사용 가능한 지표는 HTTP 클라이언트에 따라 다릅니다.
전체 목록은 서비스 클라이언트 메트릭을 참조하세요.
이 정보를 어떻게 사용할 수 있나요?
가 SDK 수집하는 지표를 사용하여 애플리케이션의 서비스 클라이언트를 모니터링할 수 있습니다. 전반적인 사용 추세를 살펴보고, 이상 현상을 식별하고, 반환된 서비스 클라이언트 예외를 검토하거나, 특정 문제를 이해하기 위해 자세히 알아볼 수 있습니다. 를 사용하면 애플리케이션이 정의한 조건에 도달하는 즉시 알림을 보내는 경보를 생성할 Amazon CloudWatch수도 있습니다.
자세한 내용은 Amazon CloudWatch 사용 설명서의 Amazon CloudWatch 지표 사용 및 Amazon CloudWatch 경보 사용을 참조하세요.