Gunakan SDK metrik dari AWS SDK for Java - AWS SDK for Java 2.x

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gunakan SDK metrik dari AWS SDK for Java

Dengan AWS SDK for Java 2.x, Anda dapat mengumpulkan metrik tentang klien layanan di aplikasi Anda, menganalisis output Amazon CloudWatch, dan kemudian menindaklanjutinya.

Secara default, koleksi metrik dinonaktifkan di file. SDK Topik ini membantu Anda mengaktifkan dan mengonfigurasinya.

Prasyarat

Sebelum Anda dapat mengaktifkan dan menggunakan metrik, Anda harus menyelesaikan langkah-langkah berikut:

  • Selesaikan langkah-langkah dalam Siapkan AWS SDK for Java 2.x.

  • Konfigurasikan dependensi proyek Anda (misalnya, di build.gradle file pom.xml atau Anda) untuk menggunakan versi 2.14.0 atau yang lebih baru. AWS SDK for Java

    Untuk mengaktifkan penerbitan metrik CloudWatch, sertakan juga artifactId cloudwatch-metric-publisher dengan nomor versi 2.14.0 atau yang lebih baru dalam dependensi proyek Anda.

    Sebagai contoh:

    <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>
  • Aktifkan cloudwatch:PutMetricData izin untuk IAM identitas yang digunakan oleh penerbit metrik untuk memungkinkan Java menulis SDK metrik.

Cara mengaktifkan pengumpulan metrik

Anda dapat mengaktifkan metrik dalam aplikasi Anda untuk klien layanan atau permintaan individual.

Aktifkan metrik untuk permintaan tertentu

Kelas berikut menunjukkan cara mengaktifkan penerbit CloudWatch metrik untuk permintaan. Amazon DynamoDB Ini menggunakan konfigurasi penerbit metrik default.

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(); } }
penting

Pastikan aplikasi Anda memanggil close MetricPublisher instance ketika klien layanan tidak lagi digunakan. Kegagalan untuk melakukannya mengakibatkan kemungkinan kebocoran thread atau deskriptor file.

Aktifkan metrik ringkasan untuk klien layanan tertentu

Cuplikan kode berikut menunjukkan cara mengaktifkan penerbit CloudWatch metrik dengan pengaturan default untuk klien layanan.

MetricPublisher metricsPub = CloudWatchMetricPublisher.create(); DynamoDbClient ddb = DynamoDbClient.builder() .overrideConfiguration(c -> c.addMetricPublisher(metricsPub)) .build();

Kustomisasi penerbit metrik

Kelas berikut menunjukkan cara menyiapkan konfigurasi kustom untuk penerbit metrik untuk klien layanan tertentu. Kustomisasi termasuk memuat profil tertentu, menentukan AWS Wilayah tempat penerbit metrik mengirimkan permintaan, dan menyesuaikan seberapa sering penerbit mengirimkan metrik. 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(); } }

Kustomisasi yang ditampilkan dalam cuplikan sebelumnya memiliki efek sebagai berikut.

  • cloudWatchClientMetode ini memungkinkan Anda menyesuaikan CloudWatch klien yang digunakan untuk mengirim metrik. Dalam contoh ini, kami menggunakan wilayah yang berbeda dari default us-east-1 di mana klien mengirimkan metrik. Kami juga menggunakan profil bernama yang berbeda, cloudwatch, yang kredensialnya akan digunakan untuk mengautentikasi permintaan. CloudWatch Kredensil tersebut harus memiliki izin untuk. cloudwatch:PutMetricData

  • uploadFrequencyMetode ini memungkinkan Anda menentukan seberapa sering penayang metrik mengunggah metrik. CloudWatch Defaultnya adalah sekali dalam satu menit.

  • maximumCallsPerUploadMetode ini membatasi jumlah panggilan yang dilakukan per unggahan. Defaultnya tidak terbatas.

  • Secara default, SDK untuk Java 2.x menerbitkan metrik di bawah namespace. AwsSdk/JavaSdk2 Anda dapat menggunakan namespace metode ini untuk menentukan nilai yang berbeda.

  • Secara default, metrik ringkasan SDK menerbitkan. Metrik ringkasan terdiri dari rata-rata, minimum, maksimum, jumlah, dan jumlah sampel. Dengan menentukan satu atau lebih SDK metrik dalam detailedMetrics metode, SDK menerbitkan data tambahan untuk setiap metrik. Data tambahan ini memungkinkan statistik persentil seperti p90 dan p99 yang dapat Anda kueri. CloudWatch Metrik terperinci sangat berguna untuk metrik latensi sepertiAPICallDuration, yang mengukur end-to-end latensi untuk permintaan klien. SDK Anda dapat menggunakan bidang CoreMetric kelas untuk menentukan SDK metrik umum lainnya.

Kapan metrik tersedia?

Metrik umumnya tersedia dalam waktu 5-10 menit setelah SDK for Java memancarkannya. Untuk akurasi dan up-to-date metrik, periksa Cloudwatch setidaknya 10 menit setelah memancarkan metrik dari aplikasi Java Anda.

Informasi apa yang dikumpulkan?

Koleksi metrik meliputi:

  • Jumlah API permintaan, termasuk apakah mereka berhasil atau gagal

  • Informasi tentang AWS layanan yang Anda hubungi dalam API permintaan Anda, termasuk pengecualian yang dikembalikan

  • Durasi untuk berbagai operasi seperti Marshalling, Signing, dan request HTTP

  • HTTPmetrik klien, seperti jumlah koneksi terbuka, jumlah permintaan yang tertunda, dan nama HTTP klien yang digunakan

catatan

Metrik yang tersedia bervariasi menurut HTTP klien.

Untuk daftar lengkapnya, lihat Metrik klien layanan.

Bagaimana saya bisa menggunakan informasi ini?

Anda dapat menggunakan metrik yang SDK dikumpulkan untuk memantau klien layanan dalam aplikasi Anda. Anda dapat melihat tren penggunaan secara keseluruhan, mengidentifikasi anomali, meninjau pengecualian klien layanan yang dikembalikan, atau menggali untuk memahami masalah tertentu. Dengan menggunakan Amazon CloudWatch, Anda juga dapat membuat alarm untuk memberi tahu Anda segera setelah aplikasi Anda mencapai kondisi yang Anda tentukan.

Untuk informasi selengkapnya, lihat Menggunakan Amazon CloudWatch Metrik dan Menggunakan Amazon CloudWatch Alarm di Amazon CloudWatch Panduan Pengguna.

Topik