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.
Änderungen bei der Veröffentlichung von SDK-Metriken von Version 1 zu Version 2
In diesem Thema werden die Änderungen bei der clientseitigen Veröffentlichung von SDK-Metriken von Version 1.x (v1) auf Version 2.x (v2) von beschrieben. AWS SDK für Java
High-level Änderungen
Die Architektur ändert sich
In Version 1 ist die Erfassung von Metriken eine globale JVM-wide Einstellung, die Sie mit einer Systemeigenschaft aktivieren. Das SDK veröffentlicht automatisch alle gesammelten Metriken unter CloudWatch. Es gibt nur ein Ziel für Metriken.
In Version 2 verwendet die Erfassung von Metriken eine austauschbare MetricPublisher
-
CloudWatchMetricPublisher
: Aggregiert Metriken und lädt sie regelmäßig hoch in. CloudWatch Am besten für Anwendungen mit langer Laufzeit geeignet. -
EmfMetricLoggingPublisher
: Schreibt Metriken als strukturierte Protokolleinträge im CloudWatch Embedded Metric Format (EMF). Am besten geeignet für Lambda-Funktionen und andere kurzlebige Umgebungen. -
LoggingMetricPublisher
: Gibt Metriken über die SLF4J-Protokollierung an die Konsole aus. Am besten für lokale Entwicklung und Debugging geeignet.
Änderungen des Umfangs
In Version 1 werden durch die Aktivierung von Metriken Daten für alle AWS Service-Clients in der JVM veröffentlicht. In Version 2 steuern Sie die Metriken auf der Ebene der Serviceclients oder auf der Ebene der einzelnen Anfragen.
Änderungen des Metriktyps
v1 erfasst drei Kategorien von Metriken: AWS Anforderungsmetriken, AWS Servicemetriken und Maschinenmetriken (Heap-Speicher, Thread-Anzahl, offene Dateideskriptoren).
v2 konzentriert sich auf SDK-Anfrage- und Antwortmetriken wie API-Aufrufdauer, Marshalling-Dauer, Signaturdauer und Anzahl der Wiederholungen. v2 sammelt keine Maschinenmetriken wie Heap-Speicher, Thread-Anzahl und offene Dateideskriptoren. Um die Erfassung von JVM-Metriken fortzusetzen CloudWatch, können Sie den Agenten mit der JMX-Metrikerfassung verwenden. CloudWatch
Änderungen der Abhängigkeiten
Die folgende Tabelle zeigt die Änderungen der Maven-Abhängigkeit und der Paketnamen zwischen Version 1 und Version 2.
| Änderungen | v1 | v2 |
|---|---|---|
|
Maven-Abhängigkeiten |
|
|
| Package name | com.amazonaws.metrics |
software.amazon.awssdk.metrics |
1 Letzte Version
Das v2-Artefakt hängt vom Anwendungsfall ab, wie in der folgenden Tabelle dargestellt.
| Anwendungsfall | v2-Artefakt-ID | Minimale SDK-Version |
|---|---|---|
| Long-running Anwendungen | cloudwatch-metric-publisher |
2.14.0 |
| Lambda-Funktionen | emf-metric-logging-publisher |
2.30.3 |
| Entwicklung und Debugging | Keine zusätzliche Abhängigkeit erforderlich (LoggingMetricPublisherist im SDK-Kern enthalten) |
2.14.0 |
API-Änderungen
Aktivieren von -Metriken
In der folgenden Tabelle wird verglichen, wie Metriken in Version 1 und Version 2 für verschiedene Anwendungsfälle aktiviert werden.
| Anwendungsfall | v1 | v2 |
|---|---|---|
|
Aktivieren Sie Metriken weltweit |
Fügen Sie eine JVM-Systemeigenschaft hinzu:
|
Nicht unterstützt Hängen Sie jedem Service-Client eine MetricPublisher an. |
|
Metriken auf Amazon EC2 ohne Anmeldeinformationsdatei aktivieren |
|
Nicht zutreffend. v2 verwendet die Standardauflösung für Anmeldeinformationen. |
|
Aktivieren Sie Metriken für einen Service-Client |
Nicht unterstützt Die Metriken sind global oder deaktiviert. |
|
|
Aktivieren Sie Metriken für eine einzelne Anfrage |
Nicht unterstützt |
|
Konfiguration des CloudWatch Ziels
Die folgende Tabelle zeigt, wie das CloudWatch Ziel in Version 1 im Vergleich zu Version 2 konfiguriert wird.
| Anwendungsfall | v1 | v2 |
|---|---|---|
|
CloudWatch Region festlegen |
Eigenschaftsattribut des Systems:
|
|
|
Stellen Sie die Upload-Frequenz ein |
Nicht konfigurierbar. Lädt ungefähr einmal pro Minute hoch. |
|
|
Legen Sie den Namespace fest CloudWatch |
Fixiert auf. AWSSDK/Java |
Standardeinstellung:
AnmerkungWenn Sie bereits CloudWatch Dashboards oder Alarme haben, die auf den Namespace v1 verweisen |
|
Maschinenmetriken ausschließen |
Attribut der Systemeigenschaft:
|
Nicht zutreffend. v2 sammelt keine Maschinenmetriken. |
Metriken für Lambda-Funktionen
v1 hat keine Lambda-specific Metriklösung. Verwenden Sie in Version 2, EmfMetricLoggingPublisher das Metriken als strukturierte Protokolleinträge im CloudWatch Embedded Metric Format (EMF) schreibt:
// v2 - Lambda-optimized metrics publishing EmfMetricLoggingPublisher emfPublisher = EmfMetricLoggingPublisher.builder() .namespace("MyApp") .dimensions(CoreMetric.SERVICE_ID, CoreMetric.OPERATION_NAME) .build(); DynamoDbClient dynamoDb = DynamoDbClient.builder() .overrideConfiguration(c -> c.addMetricPublisher(emfPublisher)) .build();
Anmerkung
In Lambda-Umgebungen logGroupName wird das automatisch anhand der AWS_LAMBDA_LOG_GROUP_NAME Umgebungsvariablen erkannt. In Nicht-Lambda-Umgebungen wie Amazon ECS oder Amazon EC2 müssen Sie logGroupName dies explizit auf dem Builder festlegen.
Metriken für Entwicklung und Debugging
Version 1 hat keine konsolenbasierte Ausgabe von Metriken. Verwenden Sie in v2: LoggingMetricPublisher
// v2 - Console output for debugging MetricPublisher loggingPublisher = LoggingMetricPublisher.create(); S3Client s3 = S3Client.builder() .overrideConfiguration(c -> c.addMetricPublisher(loggingPublisher)) .build();
Lebenszyklusmanagement
In Version 1 wird die Erfassung von Metriken für die gesamte Lebensdauer der JVM ausgeführt, sobald die Systemeigenschaft festgelegt ist. In Version 2 müssen Sie den Lebenszyklus von verwalten: MetricPublisher
// v2 - Close the publisher when no longer needed MetricPublisher metricsPub = CloudWatchMetricPublisher.create(); DynamoDbClient ddb = DynamoDbClient.builder() .overrideConfiguration(c -> c.addMetricPublisher(metricsPub)) .build(); // ... use the client ... metricsPub.close(); // Flushes remaining metrics to CloudWatch ddb.close();
Wichtig
Rufen Sie die MetricPublisher Instanz close auf, wenn sie nicht mehr benötigt wird. Wenn Sie dies nicht tun, kann dies zu Lecks in Thread- oder Dateideskriptoren führen.
Erforderliche Berechtigungen
In der folgenden Tabelle sind die IAM-Berechtigungen aufgeführt, die für jeden Herausgeber von Metriken erforderlich sind.
| Art der Berechtigung | v1 | v2 (CloudWatchMetricPublisher) | 2 2 (EmfMetricLoggingPublisher) |
|---|---|---|---|
| IAM-Berechtigung | cloudwatch:PutMetricData |
cloudwatch:PutMetricData |
logs:PutLogEvents |
Einschränkungen
Der AWS CRT-based S3-Client unterstützt derzeit die Erfassung von SDK-Metriken in Version 2 nicht.