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 PutMetricDataRequestPutMetricDataRequest 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
Mais informações
-
Usar métricas do Amazon CloudWatch no Guia do usuário do Amazon CloudWatch.
-
Namespaces da AWS no Guia do usuário Amazon CloudWatch.
-
PutMetricData na Referência de API do Amazon CloudWatch.