我有一个来自不同应用程序的指标图,我想将它们写入 AWSCloud 手表。
我怎样才能做到这一点?
PS:我尝试在解析整个地图后使用指标名称和指标值来放置它们,但这对我来说看起来不是一个好方法。
谢谢!
我有一个来自不同应用程序的指标图,我想将它们写入 AWSCloud 手表。
我怎样才能做到这一点?
PS:我尝试在解析整个地图后使用指标名称和指标值来放置它们,但这对我来说看起来不是一个好方法。
谢谢!
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());