0

我有一个来自不同应用程序的指标图,我想将它们写入 AWSCloud 手表。

我怎样才能做到这一点?

PS:我尝试在解析整个地图后使用指标名称和指标值来放置它们,但这对我来说看起来不是一个好方法。

谢谢!

4

1 回答 1

0

Cloudwatch 应该能够轻松跟上您的指标量,因此我只需PutMetricDataRequest为从源应用程序传入的每个批次使用 1,并让 Cloudwatch 进行聚合。

如果您查看PutMetricDataRequest它,它Collection<MetricDatum>非常适合接收您在单个请求中从源应用程序接收的任意数量的密钥。

====

使用 Java8 流 API 将 HashMap 转换为 List 非常简单:

假设您的地图是键 => 值地图:

Map<String, Object> metricMap = new HashMap<>();
metricMap.put("metricKey", 99);

您可以将 Java8 流 API 与 map 和 collect 一起使用:

List<MetricDatum> metrics = metricMap.entrySet().parallelStream()
        .map(map -> new MetricDatum()
                .withMetricName(map.getKey())
                .withUnit(StandardUnit.Count)
                .withValue(Double.valueOf(map.getValue().toString()))
        ).collect(Collectors.toList());
于 2017-01-03T23:39:56.457 回答