의 SDK 메트릭을 사용하십시오. AWS SDK for Java - AWS SDK for Java 2.x

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

의 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 파일)을 구성하세요.

    메트릭을 게시할 수 있게 하려면 CloudWatch프로젝트의 종속 항목에 버전 번호와 artifactId cloudwatch-metric-publisher 함께 2.14.0 또는 그 이후 버전도 포함해야 합니다.

    예:

    <project> <dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.14.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>cloudwatch-metric-publisher</artifactId> <version>2.14.0</version> </dependency> </dependencies> </project>
  • 메트릭 게시자가 사용하는 IAM ID에 대한 cloudwatch:PutMetricData 권한을 활성화하여 Java에서 SDK 메트릭을 작성할 수 있도록 합니다.

지표 수집을 활성화하는 방법

서비스 클라이언트 또는 개별 요청에 대해 애플리케이션에서 지표를 활성화할 수 있습니다.

특정 요청에 대한 지표 활성화

다음 클래스는 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 메서드는 업로드당 호출 수를 제한합니다. 기본값은 무제한입니다.

  • 기본적으로 SDK for Java 2.x는 네임스페이스 아래에 메트릭을 게시합니다. AwsSdk/JavaSdk2 namespace메서드를 사용하여 다른 값을 지정할 수 있습니다.

  • 기본적으로 는 요약 지표를 SDK 게시합니다. 요약 지표는 평균, 최소값, 최대값, 합계 및 샘플 수로 구성됩니다. detailedMetrics메서드에 SDK 지표를 하나 이상 지정하면 에서는 각 지표에 대한 추가 데이터를 SDK 게시합니다. 이 추가 데이터를 통해 p90 및 p99와 같은 백분위수 통계를 사용하여 쿼리할 수 있습니다. CloudWatch 세부 지표는 클라이언트 요청의 지연 시간을 측정하는 APICallDuration 등의 지연 시간 지표에 SDK 특히 유용합니다. end-to-end CoreMetric클래스의 필드를 사용하여 다른 일반적인 SDK 지표를 지정할 수 있습니다.

지표는 언제 사용할 수 있나요?

지표는 일반적으로 SDK for Java에서 생성된 후 5~10분 이내에 사용할 수 있습니다. 정확한 측정치를 보려면 Java 애플리케이션에서 up-to-date 지표를 내보낸 후 최소 10분 후에 Cloudwatch를 확인하십시오.

어떤 정보가 수집되나요?

지표 수집에는 다음이 포함됩니다.

  • API요청 수 (성공 또는 실패 여부 포함)

  • 반환된 예외를 포함하여 API 요청 시 요청한 AWS 서비스에 대한 정보

  • 마샬링, 서명, 요청과 같은 다양한 작업에 소요되는 기간 HTTP

  • HTTP열린 연결 수, 보류 중인 요청 수, 사용된 클라이언트 이름 등의 클라이언트 지표 HTTP

참고

사용 가능한 지표는 HTTP 클라이언트마다 다릅니다.

전체 목록은 서비스 클라이언트 메트릭을 참조하세요.

이 정보를 어떻게 사용할 수 있나요?

SDK수집한 메트릭을 사용하여 애플리케이션의 서비스 클라이언트를 모니터링할 수 있습니다. 전반적인 사용 추세를 살펴보고, 이상 현상을 식별하고, 반환된 서비스 클라이언트 예외를 검토하거나, 특정 문제를 이해하기 위해 자세히 알아볼 수 있습니다. 를 사용하면 Amazon CloudWatch애플리케이션이 정의한 조건에 도달하는 즉시 알림을 보내는 경보를 생성할 수도 있습니다.

자세한 내용은 사용 Amazon CloudWatch 설명서의 Amazon CloudWatch 지표 사용 및 Amazon CloudWatch 경보 사용을 참조하십시오.

주제