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

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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 seus próprios dados métricos, chame o putMetricData método CloudWatchClient's com um PutMetricDataRequest. Eles PutMetricDataRequest devem incluir o namespace personalizado a ser usado para os dados e informações sobre o próprio ponto de dados em um MetricDatumobjeto.

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

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 em GitHub.

Mais informações