Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何将地图传递到AWS cloudwatch_Amazon Web Services_Aws Sdk_Amazon Cloudwatch_Aws Java Sdk_Amazon Cloudwatch Metrics - Fatal编程技术网

Amazon web services 如何将地图传递到AWS cloudwatch

Amazon web services 如何将地图传递到AWS cloudwatch,amazon-web-services,aws-sdk,amazon-cloudwatch,aws-java-sdk,amazon-cloudwatch-metrics,Amazon Web Services,Aws Sdk,Amazon Cloudwatch,Aws Java Sdk,Amazon Cloudwatch Metrics,我有一个来自不同应用程序的度量图,我想将它们写入AWSCloud watch 我该怎么做 PS:在解析整个映射之后,我尝试使用度量名称和度量值来放置它们,但这对我来说不是一个好方法 谢谢 Cloudwatch应该能够轻松跟上您的度量量,因此我只会对来自源应用程序的每个批使用1,并让Cloudwatch进行聚合 如果您看一下,它需要一个非常适合在一个请求中接收来自源应用程序的任意数量的密钥 ==== 使用Java8 streams API将HashMap转换为列表非常简单: 假设您的映射是键=>值

我有一个来自不同应用程序的度量图,我想将它们写入AWSCloud watch

我该怎么做

PS:在解析整个映射之后,我尝试使用度量名称和度量值来放置它们,但这对我来说不是一个好方法


谢谢

Cloudwatch应该能够轻松跟上您的度量量,因此我只会对来自源应用程序的每个批使用1,并让Cloudwatch进行聚合

如果您看一下,它需要一个非常适合在一个请求中接收来自源应用程序的任意数量的密钥

====

使用Java8 streams API将HashMap转换为列表非常简单:

假设您的映射是键=>值映射:

Map<String, Object> metricMap = new HashMap<>();
metricMap.put("metricKey", 99);
Map metricMap=newhashmap();
metricMap.put(“metricKey”,99);
您可以将Java8 streams API用于映射和收集:

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());
List metrics=metricMap.entrySet().parallelStream()
.map(map->new MetricDatum()
.withMetricName(map.getKey())
.带单位(标准单位.计数)
.withValue(Double.valueOf(map.getValue().toString()))
).collect(Collectors.toList());

谢谢你的回答。在我的例子中,数据是以哈希映射的形式出现的。基本上,我有一个拥有不同订户模式的门面(CloudWatch就是其中之一)。地图被推送到Facade,然后它可供不同的订阅者使用。因此,在本例中,我得到了相同的hashmap。你是说我需要迭代hashmap中的所有键和值,以便在MetricDatum map中转换它吗?@Lovey:我会使用Java8 streams API,这会使这变得非常简单。我在答案中添加了一个代码示例来说明操作。仍然是一样的。但是没关系。我明白你想得出的结论。谢谢,对不起,也许我误解了这个问题。如果你能澄清一点,我很乐意进一步帮助你。