Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden Sie SDK Metriken aus dem AWS SDK for Java
Mit Version AWS SDK for Java 2.x können Sie Metriken zu den Service-Clients in Ihrer Anwendung sammeln, die Ergebnisse analysieren und dann entsprechend handeln. Amazon CloudWatch
Standardmäßig ist die Erfassung von Metriken in der SDK deaktiviert. Dieses Thema hilft Ihnen dabei, es zu aktivieren und zu konfigurieren.
Voraussetzungen
Bevor Sie Metriken aktivieren und verwenden können, müssen Sie die folgenden Schritte ausführen:
-
Führen Sie die Schritte unter Richten Sie das AWS SDK for Java 2.x ein aus.
-
Konfigurieren Sie Ihre Projektabhängigkeiten (z. B. in Ihrer
pom.xml
build.gradle
OR-Datei) so, dass die Version2.14.0
oder eine neuere Version von verwendet wird AWS SDK for Java.Um die Veröffentlichung von Metriken zu ermöglichen CloudWatch, nehmen Sie auch die artifactId
cloudwatch-metric-publisher
zusammen mit der Versionsnummer2.14.0
oder einer späteren Version in die Abhängigkeiten Ihres Projekts auf.Beispielsweise:
<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>
-
Aktivieren Sie
cloudwatch:PutMetricData
Berechtigungen für die IAM Identität, die vom Herausgeber der Metriken verwendet wird, SDK damit Java Metriken schreiben kann.
Wie aktiviert man die Erfassung von Metriken
Sie können Metriken in Ihrer Anwendung für einen Service-Client oder für einzelne Anfragen aktivieren.
Aktivieren Sie Metriken für eine bestimmte Anfrage
In der folgenden Klasse wird gezeigt, wie Sie den CloudWatch Metrik-Publisher für eine Anfrage aktivieren Amazon DynamoDB. Es verwendet die Standardkonfiguration für den Metrik-Publisher.
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(); } }
Wichtig
Stellen Sie sicher, dass Ihre Anwendung die MetricPublisher
Instanz close
aufruft, wenn der Service Client nicht mehr verwendet wird. Andernfalls können Thread- oder Dateideskriptorlecks auftreten.
Aktivieren Sie Übersichtsmetriken für einen bestimmten Service-Client
Der folgende Codeausschnitt zeigt, wie Sie einen CloudWatch Metrik-Publisher mit Standardeinstellungen für einen Service Client aktivieren.
MetricPublisher metricsPub = CloudWatchMetricPublisher.create(); DynamoDbClient ddb = DynamoDbClient.builder() .overrideConfiguration(c -> c.addMetricPublisher(metricsPub)) .build();
Passen Sie den Herausgeber von Kennzahlen an
In der folgenden Klasse wird gezeigt, wie Sie eine benutzerdefinierte Konfiguration für den Metrik-Publisher für einen bestimmten Service-Client einrichten. Zu den Anpassungen gehören das Laden eines bestimmten Profils, die Angabe einer AWS Region, in die der Herausgeber der Metriken Anfragen sendet, und das Anpassen, wie oft der Herausgeber Metriken sendet. 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(); } }
Die im vorherigen Snippet gezeigten Anpassungen haben die folgenden Auswirkungen.
-
Mit
cloudWatchClient
dieser Methode können Sie den CloudWatch Client anpassen, der zum Senden von Metriken verwendet wird. In diesem Beispiel verwenden wir eine andere Region als die Standardregion us-east-1, in die der Client Metriken sendet. Wir verwenden auch ein anderes benanntes Profil, cloudwatch, dessen Anmeldeinformationen zur Authentifizierung von Anfragen verwendet werden. CloudWatch Diese Anmeldeinformationen müssen über die erforderlichen Berechtigungen verfügen.cloudwatch:PutMetricData
-
Mit
uploadFrequency
dieser Methode können Sie angeben, wie oft der Herausgeber Metriken hochlädt. CloudWatch Die Standardeinstellung ist einmal pro Minute. -
Die
maximumCallsPerUpload
Methode begrenzt die Anzahl der Aufrufe pro Upload. Der Standardwert lautet „unbegrenzt“. -
Standardmäßig veröffentlicht das SDK für Java 2.x Metriken unter dem
AwsSdk/JavaSdk2
Namespace. Sie können dienamespace
Methode verwenden, um einen anderen Wert anzugeben. -
Standardmäßig SDK veröffentlicht der Übersichtsmetriken. Übersichtsmetriken bestehen aus Durchschnitt, Minimum, Maximum, Summe und Stichprobenanzahl. Durch die Angabe einer oder mehrerer SDK Metriken in der
detailedMetrics
Methode werden zusätzliche Daten für jede Metrik SDK veröffentlicht. Diese zusätzlichen Daten ermöglichen Perzentilstatistiken wie p90 und p99, die Sie abfragen können. CloudWatch Die detaillierten Metriken sind besonders nützlich für Latenzmetriken wieAPICallDuration
, mit denen die Latenz bei Kundenanfragen gemessen wird end-to-end. SDK Sie können Felder derCoreMetric
Klasse verwenden, um andere gängige SDK Metriken anzugeben.
Wann sind Metriken verfügbar?
Metriken sind in der Regel innerhalb von 5-10 Minuten verfügbar, nachdem sie von SDK for Java ausgegeben wurden. Genaue up-to-date Metriken finden Sie mindestens 10 Minuten nach der Ausgabe der Metriken aus Ihren Java-Anwendungen in Cloudwatch.
Welche Informationen werden gesammelt?
Die Erfassung von Metriken umfasst Folgendes:
-
Anzahl der API Anfragen, einschließlich der Frage, ob sie erfolgreich waren oder nicht
-
Informationen über die AWS Dienste, die Sie in Ihren API Anfragen aufrufen, einschließlich der zurückgegebenen Ausnahmen
-
Die Dauer verschiedener Vorgänge wie Marshalling, Signierung und Anfragen HTTP
-
HTTPClient-Metriken wie die Anzahl der offenen Verbindungen, die Anzahl der ausstehenden Anfragen und der Name des verwendeten HTTP Clients
Anmerkung
Die verfügbaren Metriken variieren je nach HTTP Client.
Eine vollständige Liste finden Sie unter Service-Client-Metriken.
Wie kann ich diese Informationen verwenden?
Sie können die SDK gesammelten Metriken verwenden, um die Service-Clients in Ihrer Anwendung zu überwachen. Sie können sich allgemeine Nutzungstrends ansehen, Anomalien identifizieren, zurückgemeldete Service-Client-Ausnahmen überprüfen oder sich ein bestimmtes Problem genauer ansehen. Mit dieser Amazon CloudWatch Funktion können Sie auch Alarme einrichten, die Sie benachrichtigen, sobald Ihre Anwendung einen von Ihnen definierten Zustand erreicht.
Weitere Informationen finden Sie unter Verwenden von Amazon CloudWatch Metriken und Verwenden von Amazon CloudWatch Alarmen im Amazon CloudWatch Benutzerhandbuch.