本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将自定义指标数据发布到 CloudWatch
许多 AWS 服务以“AWS
”开头的命名空间发布它们自己的指标。您也可以使用自己的命名空间发布自定义指标数据(不以“AWS
”开头即可)。
发布自定义指标数据
要发布您自己的指标数据,请使用调用 CloudWatchClient's putMetricData
方法PutMetricDataRequestPutMetricDataRequest
必须包括用于数据的自定义命名空间,以及有关MetricDatum
注意
您无法指定以“AWS
”开头的命名空间。以“AWS
”开头的命名空间保留供 Amazon Web Services 产品使用。
导入
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;
代码
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); }
请参阅上的完整示例
更多信息
-
《Amazon CloudWatch 用户指南》中的AWS 命名空间。
-
PutMetricData在 Amazon CloudWatch API 参考中。