Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Modifications apportées à la publication des métriques du SDK de la version 1 à la version 2
Cette rubrique détaille les modifications apportées à la publication des métriques du SDK côté client entre la version 1.x (v1) et la version 2.x (v2) du. AWS SDK pour Java
High-level modifications
Changements d'architecture
Dans la version 1, la collecte de métriques est un JVM-wide paramètre global que vous activez à l'aide d'une propriété système. Le SDK publie automatiquement toutes les métriques collectées sur CloudWatch. Il n'existe qu'une seule destination pour les métriques.
Dans la version 2, la collecte de métriques utilise une MetricPublisher
-
CloudWatchMetricPublisher
: agrège les statistiques et les télécharge périodiquement vers. CloudWatch Idéal pour les applications de longue durée. -
EmfMetricLoggingPublisher
: écrit les métriques sous forme d'entrées de journal structurées au format EMF ( CloudWatch Embedded Metric Format). Idéal pour les fonctions Lambda et autres environnements de courte durée. -
LoggingMetricPublisher
: affiche les métriques sur la console via la journalisation SLF4J. Idéal pour le développement local et le débogage.
Modifications du champ
Dans la version 1, l'activation des métriques publie les données de tous les clients de AWS service de la JVM. Dans la version 2, vous contrôlez les métriques au niveau du client de service ou au niveau des demandes individuelles.
Changements de type de métrique
v1 collecte trois catégories de métriques : les métriques de AWS demande, les métriques de AWS service et les métriques de machine (mémoire de segment, nombre de threads, descripteurs de fichiers ouverts).
La v2 se concentre sur les métriques de demande et de réponse du SDK, telles que la durée des appels d'API, la durée du marshaling, la durée de signature et le nombre de tentatives. La v2 ne collecte pas les métriques de la machine telles que la mémoire en tas, le nombre de threads et les descripteurs de fichiers ouverts. Pour continuer à collecter des métriques JVM dans CloudWatch, vous pouvez utiliser l'CloudWatch agent avec la collecte de métriques JMX.
Modifications des dépendances
Le tableau suivant montre la dépendance Maven et les changements de nom de package entre la v1 et la v2.
| Modifier | v1 | v2 |
|---|---|---|
|
Dépendances de Maven |
|
|
| Nom du package | com.amazonaws.metrics |
software.amazon.awssdk.metrics |
1 Dernière version
L'artefact v2 dépend du cas d'utilisation, comme indiqué dans le tableau suivant.
| Cas d’utilisation | Artifactid v2 | Version minimale du SDK |
|---|---|---|
| Long-running applications | cloudwatch-metric-publisher |
2.14.0 |
| Fonctions Lambda | emf-metric-logging-publisher |
2,30,3 |
| Développement et débogage | Aucune dépendance supplémentaire n'est nécessaire (LoggingMetricPublisherse trouve dans le noyau du SDK) |
2.14.0 |
Modifications de l'API
Activation des métriques
Le tableau suivant compare la manière d'activer les métriques dans les versions 1 et 2 pour différents cas d'utilisation.
| Cas d’utilisation | v1 | v2 |
|---|---|---|
|
Activez les métriques au niveau mondial |
Ajoutez une propriété de système JVM :
|
Non pris en charge. Attachez-en un MetricPublisher à chaque client de service. |
|
Activer les métriques sur Amazon EC2 sans fichier d'informations d'identification |
|
Non applicable. La v2 utilise sa résolution d'identification standard. |
|
Activer les métriques pour un client de service |
Non pris en charge. Les métriques sont globales ou non. |
|
|
Activez les métriques pour une seule demande |
Non pris en charge. |
|
Configuration de la CloudWatch destination
Le tableau suivant montre comment configurer la CloudWatch destination dans la version v1 par rapport à la version v2.
| Cas d’utilisation | v1 | v2 |
|---|---|---|
|
Définir CloudWatch la région |
Attribut de propriété du système :
|
|
|
Définir la fréquence de téléchargement |
Non configurable. Télécharge environ une fois par minute. |
|
|
Définir l'espace CloudWatch de noms |
Fixé àAWSSDK/Java. |
La valeur par défaut est
NoteSi vous disposez déjà de CloudWatch tableaux de bord ou d'alarmes faisant référence à l'espace de noms v1 |
|
Exclure les métriques des machines |
Attribut de propriété du système :
|
Non applicable. La v2 ne collecte pas les métriques de la machine. |
Métriques pour les fonctions Lambda
v1 n'a pas de solution de Lambda-specific métriques. Dans la version 2, utilisez celui EmfMetricLoggingPublisher qui écrit les métriques sous forme d'entrées de journal structurées au format EMF ( CloudWatch Embedded Metric Format) :
// 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();
Note
Dans les environnements Lambda, le logGroupName est détecté automatiquement à partir de la AWS_LAMBDA_LOG_GROUP_NAME variable d'environnement. Dans les environnements autres que Lambda tels qu'Amazon ECS ou Amazon EC2, vous devez logGroupName définir explicitement le générateur.
Métriques pour le développement et le débogage
v1 n'a pas de sortie de métriques basée sur la console. Dans la version 2, utilisez LoggingMetricPublisher :
// v2 - Console output for debugging MetricPublisher loggingPublisher = LoggingMetricPublisher.create(); S3Client s3 = S3Client.builder() .overrideConfiguration(c -> c.addMetricPublisher(loggingPublisher)) .build();
Gestion du cycle de vie
Dans la version 1, la collecte des métriques s'exécute pendant toute la durée de vie de la machine virtuelle Java une fois que la propriété du système est définie. Dans la version 2, vous devez gérer le cycle de vie des 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();
Important
Appelez close l'MetricPublisherinstance lorsqu'elle n'est plus nécessaire. Si vous ne le faites pas, cela peut entraîner des fuites de thread ou de descripteur de fichier.
Autorisations requises
Le tableau suivant répertorie les autorisations IAM requises pour chaque éditeur de mesures.
| Type d'autorisation | v1 | v2 (CloudWatchMetricPublisher) | v2 (EmfMetricLoggingPublisher) |
|---|---|---|---|
| Autorisation IAM | cloudwatch:PutMetricData |
cloudwatch:PutMetricData |
logs:PutLogEvents |
Limitations
Le client AWS CRT-based S3 ne prend actuellement pas en charge la collecte des métriques du SDK dans la version v2.