Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Cambios en la publicación de métricas del SDK de la versión 1 a la versión 2
En este tema se detallan los cambios en la publicación de métricas del SDK del lado del cliente desde la versión 1.x (v1) a la versión 2.x (v2) de. AWS SDK para Java
High-level cambios
Cambios en la arquitectura
En la versión 1, la recopilación de métricas es una JVM-wide configuración global que se habilita con una propiedad del sistema. El SDK publica automáticamente todas las métricas recopiladas en CloudWatch. Solo hay un destino de métricas.
En la versión 2, la recopilación de métricas utiliza una MetricPublisher
-
CloudWatchMetricPublisher
: Agrega métricas y las carga periódicamente a. CloudWatch Ideal para aplicaciones de larga duración. -
EmfMetricLoggingPublisher
: Escribe las métricas como entradas de registro CloudWatch estructuradas en formato métrico integrado (EMF). Ideal para funciones Lambda y otros entornos de corta duración. -
LoggingMetricPublisher
: Envía las métricas a la consola mediante el registro SLF4J. Ideal para el desarrollo y la depuración locales.
Cambios de alcance
En la versión 1, al habilitar las métricas, se publican los datos de todos los clientes de AWS servicio de la JVM. En la versión 2, las métricas se controlan a nivel de cliente de servicio o a nivel de solicitud individual.
Cambios en el tipo de métrica
La versión 1 recopila tres categorías de métricas: métricas de AWS solicitudes, métricas de AWS servicio y métricas de máquinas (memoria de pila, recuento de subprocesos y descriptores de archivos abiertos).
La versión 2 se centra en las métricas de solicitudes y respuestas del SDK, como la duración de las llamadas a la API, la duración de la clasificación, la duración de las firmas y el recuento de reintentos. La v2 no recopila métricas de las máquinas, como la memoria acumulada, el recuento de subprocesos y los descriptores de archivos abiertos. Para seguir recopilando métricas de JVM CloudWatch, puede utilizar el CloudWatch agente con la recopilación de métricas de JMX.
Cambios en las dependencias
La siguiente tabla muestra la dependencia de Maven y los cambios en el nombre de los paquetes entre la versión 1 y la versión 2.
| Cambio | v1 | v2 |
|---|---|---|
|
dependencias Maven |
|
|
| Nombre del paquete | com.amazonaws.metrics |
software.amazon.awssdk.metrics |
1 Última versión
El artefacto v2 depende del caso de uso, como se muestra en la siguiente tabla.
| Caso de uso | artifactId v2 | Versión mínima del SDK |
|---|---|---|
| Long-running aplicaciones | cloudwatch-metric-publisher |
2.14.0 |
| Funciones de Lambda | emf-metric-logging-publisher |
2.30.3 |
| Desarrollo y depuración | No se necesita ninguna dependencia adicional (LoggingMetricPublisherse encuentra en el núcleo del SDK) |
2.14.0 |
Cambios en la API
Habilitar métricas de
En la siguiente tabla, se compara cómo habilitar las métricas en las versiones 1 y 2 para distintos casos de uso.
| Caso de uso | v1 | v2 |
|---|---|---|
|
Habilite las métricas a nivel mundial |
Agregue una propiedad del sistema JVM:
|
No admitido. Adjunte MetricPublisher a cada cliente de servicio. |
|
Habilite las métricas en Amazon EC2 sin un archivo de credenciales |
|
No aplicable. La versión 2 utiliza su resolución de credenciales estándar. |
|
Habilite las métricas para un cliente de servicio |
No admitido. Las métricas son globales o inactivas. |
|
|
Habilita las métricas para una sola solicitud |
No admitido. |
|
Configurar el CloudWatch destino
La siguiente tabla muestra cómo configurar el CloudWatch destino en la versión 1 en comparación con la versión 2.
| Caso de uso | v1 | v2 |
|---|---|---|
|
Defina CloudWatch la región |
Atributo de propiedad del sistema:
|
|
|
Defina la frecuencia de carga |
No se puede configurar. Se carga aproximadamente una vez por minuto. |
|
|
Establece el espacio de nombres CloudWatch |
Fijado a. AWSSDK/Java |
El valor predeterminado es
notaSi tiene CloudWatch paneles o alarmas existentes que hacen referencia al espacio de nombres de la versión 1 |
|
Excluya las métricas de la máquina |
Atributo de propiedad del sistema:
|
No aplicable. La versión 2 no recopila las métricas de la máquina. |
Métricas para funciones Lambda
La versión 1 no tiene una solución de Lambda-specific métricas. En la versión 2, EmfMetricLoggingPublisher utilícela para escribir las métricas como entradas de registro CloudWatch estructuradas en formato métrico integrado (EMF):
// 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();
nota
En los entornos Lambda, logGroupName se detecta automáticamente desde la AWS_LAMBDA_LOG_GROUP_NAME variable de entorno. En entornos que no son de Lambda, como Amazon ECS o Amazon EC2, debe logGroupName configurarlo de forma explícita en el generador.
Métricas para el desarrollo y la depuración
La versión 1 no tiene una salida de métricas basada en una consola. En la versión 2, utiliceLoggingMetricPublisher:
// v2 - Console output for debugging MetricPublisher loggingPublisher = LoggingMetricPublisher.create(); S3Client s3 = S3Client.builder() .overrideConfiguration(c -> c.addMetricPublisher(loggingPublisher)) .build();
Administración del ciclo de vida
En la versión 1, la recopilación de métricas se ejecuta durante toda la vida útil de la JVM una vez establecida la propiedad del sistema. En la versión 2, debe gestionar el ciclo de vida deMetricPublisher:
// 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();
importante
Llame close a la MetricPublisher instancia cuando ya no la necesite. Si no lo hace, se pueden filtrar los descriptores del hilo o del archivo.
Permisos necesarios
En la siguiente tabla se enumeran los permisos de IAM necesarios para cada publicador de métricas.
| Tipo de permiso | v1 | v2 (CloudWatchMetricPublisher) | v2 (EmfMetricLoggingPublisher) |
|---|---|---|---|
| Permiso de IAM | cloudwatch:PutMetricData |
cloudwatch:PutMetricData |
logs:PutLogEvents |
Limitaciones
El cliente AWS CRT-based S3 no admite actualmente la recopilación de métricas del SDK en la versión 2.