

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
<a name="migration-metrics"></a>

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
<a name="migration-metrics-high-level"></a>

### Die Architektur ändert sich
<a name="migration-metrics-architecture"></a>

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](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/metrics/MetricPublisher.html)Schnittstelle, die Sie einzelnen Serviceclients oder Anfragen zuordnen. Das SDK bietet drei Implementierungen:
+ **[CloudWatchMetricPublisher](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/metrics/publishers/cloudwatch/CloudWatchMetricPublisher.html)**: Aggregiert Metriken und lädt sie regelmäßig hoch in. CloudWatch Am besten für Anwendungen mit langer Laufzeit geeignet.
+ **[EmfMetricLoggingPublisher](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/metrics/publishers/emf/EmfMetricLoggingPublisher.html)**: Schreibt Metriken als strukturierte Protokolleinträge im CloudWatch Embedded Metric Format (EMF). Am besten geeignet für Lambda-Funktionen und andere kurzlebige Umgebungen.
+ **[LoggingMetricPublisher](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/metrics/LoggingMetricPublisher.html)**: Gibt Metriken über die SLF4J-Protokollierung an die Konsole aus. Am besten für lokale Entwicklung und Debugging geeignet.

### Änderungen des Umfangs
<a name="migration-metrics-scope"></a>

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
<a name="migration-metrics-types"></a>

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 ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-JMX-metrics.html)

## Änderungen der Abhängigkeiten
<a name="migration-metrics-deps"></a>

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 |  <pre><dependencyManagement><br />    <dependencies><br />        <dependency><br />            <groupId>com.amazonaws</groupId><br />            <artifactId>aws-java-sdk-bom</artifactId><br />            <version>{{1.12.x1}}</version><br />            <type>pom</type><br />            <scope>import</scope><br />        </dependency><br />    </dependencies><br /></dependencyManagement><br /><dependencies><br />    <dependency><br />        <groupId>com.amazonaws</groupId><br />        <artifactId>aws-java-sdk-cloudwatchmetrics</artifactId><br />    </dependency><br /></dependencies></pre>  |  <pre><dependencyManagement><br />    <dependencies><br />        <dependency><br />            <groupId>software.amazon.awssdk</groupId><br />            <artifactId>bom</artifactId><br />            <version>{{2.x.x2}}</version><br />            <type>pom</type><br />            <scope>import</scope><br />        </dependency><br />    </dependencies><br /></dependencyManagement><br /><dependencies><br />    <dependency><br />        <groupId>software.amazon.awssdk</groupId><br />        <artifactId>cloudwatch-metric-publisher</artifactId><br />    </dependency><br /></dependencies></pre>  | 
| Package name | com.amazonaws.metrics | software.amazon.awssdk.metrics | 

1 [Letzte Version](https://central.sonatype.com/artifact/com.amazonaws/aws-java-sdk-bom). 2 [Letzte Version](https://central.sonatype.com/artifact/software.amazon.awssdk/bom).

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
<a name="migration-metrics-api"></a>

### Aktivieren von -Metriken
<a name="migration-metrics-enabling"></a>

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:<pre>-Dcom.amazonaws.sdk.enableDefaultMetrics=credentialFile=/path/aws.properties</pre> | Nicht unterstützt Hängen Sie jedem Service-Client eine MetricPublisher an. | 
| Metriken auf Amazon EC2 ohne Anmeldeinformationsdatei aktivieren |  <pre>-Dcom.amazonaws.sdk.enableDefaultMetrics</pre>  | 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. |  <pre>MetricPublisher metricsPub =<br />    CloudWatchMetricPublisher.create();<br /><br />DynamoDbClient ddb = DynamoDbClient.builder()<br />    .overrideConfiguration(c -> c<br />        .addMetricPublisher(metricsPub))<br />    .build();<br /><br />// ... use the client ...<br /><br />metricsPub.close();<br />ddb.close();</pre>  | 
| Aktivieren Sie Metriken für eine einzelne Anfrage | Nicht unterstützt |  <pre>ddb.listTables(ListTablesRequest.builder()<br />    .overrideConfiguration(c -> c<br />        .addMetricPublisher(metricsPub))<br />    .build());</pre>  | 

### Konfiguration des CloudWatch Ziels
<a name="migration-metrics-cw-config"></a>

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:<pre>-Dcom.amazonaws.sdk.enableDefaultMetrics=cloudwatchRegion={{us-west-2}}</pre> |  <pre>CloudWatchMetricPublisher.builder()<br />    .cloudWatchClient(<br />        CloudWatchAsyncClient.builder()<br />            .region(Region.US_WEST_2)<br />            .build())<br />    .build();</pre>  | 
| Stellen Sie die Upload-Frequenz ein | Nicht konfigurierbar. Lädt ungefähr einmal pro Minute hoch. |  <pre>CloudWatchMetricPublisher.builder()<br />    .uploadFrequency(Duration.ofMinutes(5))<br />    .build();</pre>  | 
| Legen Sie den Namespace fest CloudWatch  | Fixiert auf. AWSSDK/Java | Standardeinstellung: `AwsSdk/JavaSdk2`. Konfigurierbar über:<pre>CloudWatchMetricPublisher.builder()<br />    .namespace("MyApp/SDK")<br />    .build();</pre> Wenn Sie bereits CloudWatch Dashboards oder Alarme haben, die auf den Namespace v1 verweisen`AWSSDK/Java`, legen Sie fest`.namespace("AWSSDK/Java")`, dass die Kontinuität gewahrt bleibt.  | 
| Maschinenmetriken ausschließen | Attribut der Systemeigenschaft:<pre>-Dcom.amazonaws.sdk.enableDefaultMetrics=excludeMachineMetrics</pre> | Nicht zutreffend. v2 sammelt keine Maschinenmetriken. | 

### Metriken für Lambda-Funktionen
<a name="migration-metrics-lambda"></a>

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
<a name="migration-metrics-debugging"></a>

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
<a name="migration-metrics-lifecycle"></a>

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
<a name="migration-metrics-permissions"></a>

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
<a name="migration-metrics-limitations"></a>

Der [AWS CRT-based S3-Client](crt-based-s3-client.md) unterstützt derzeit die Erfassung von SDK-Metriken in Version 2 nicht.

## Weitere Ressourcen
<a name="migration-metrics-resources"></a>
+ [Dokumentation zu v1-Metriken](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/generating-sdk-metrics.html)
+ [Veröffentlichen Sie SDK-Metriken aus dem AWS SDK for Java 2.x](metrics.md)
+ [Veröffentlichen Sie SDK-Metriken von Anwendungen mit langer Laufzeit](metric-pub-impl-cwmp.md)
+ [Veröffentlichen Sie SDK-Metriken für Funktionen AWS Lambda](metric-pub-impl-emf.md)
+ [Geben Sie SDK-Metriken auf der Konsole aus](metric-pub-impl-logging.md)
+ [Umfassende Metrik-Referenz](metrics-list.md)