Publicar dados de métrica personalizada no CloudWatch - AWS SDK for Java 2.x

Publicar dados de métrica personalizada no CloudWatch

Vários serviços da AWS publicam as próprias métricas em namespaces que começam com “AWS”. Também é possível publicar dados de métricas personalizadas usando seu próprio namespace (contanto que não comece com “AWS”).

Publicar dados de métrica personalizada

Para publicar os próprios dados de métrica, chame o método putMetricData do CloudWatchClient com um PutMetricDataRequest. O PutMetricDataRequest deve incluir o namespace personalizado a ser usado para os dados e as informações sobre o próprio ponto de dados em um objeto MetricDatum.

nota

Você não pode especificar um namespace que começa com “AWS”. Namespaces que começam com “AWS” são reservados para serem usados por produtos da Amazon Web Services.

Importações

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.cloudwatch.CloudWatchClient; import software.amazon.awssdk.services.cloudwatch.model.Dimension; import software.amazon.awssdk.services.cloudwatch.model.MetricDatum; import software.amazon.awssdk.services.cloudwatch.model.StandardUnit; import software.amazon.awssdk.services.cloudwatch.model.PutMetricDataRequest; import software.amazon.awssdk.services.cloudwatch.model.CloudWatchException; import java.time.Instant; import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter;

Código da

public static void putMetData(CloudWatchClient cw, Double dataPoint ) { try { Dimension dimension = Dimension.builder() .name("UNIQUE_PAGES") .value("URLS") .build(); // Set an Instant object String time = ZonedDateTime.now( ZoneOffset.UTC ).format( DateTimeFormatter.ISO_INSTANT ); Instant instant = Instant.parse(time); MetricDatum datum = MetricDatum.builder() .metricName("PAGES_VISITED") .unit(StandardUnit.NONE) .value(dataPoint) .timestamp(instant) .dimensions(dimension).build(); PutMetricDataRequest request = PutMetricDataRequest.builder() .namespace("SITE/TRAFFIC") .metricData(datum).build(); cw.putMetricData(request); } catch (CloudWatchException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } System.out.printf("Successfully put data point %f", dataPoint); }

Veja o exemplo completo no GitHub.

Mais informações