使用Java从AWS自定义Cloudwatch获取最新数据
我在AWS cloudwatch中有一个自定义指标,我通过AWS java API将数据放入其中使用Java从AWS自定义Cloudwatch获取最新数据,java,amazon-cloudwatch,amazon-cloudwatch-metrics,Java,Amazon Cloudwatch,Amazon Cloudwatch Metrics,我在AWS cloudwatch中有一个自定义指标,我通过AWS java API将数据放入其中 for(int i =0;i<collection.size();i++){ String[] cell = collection.get(i).split("\\|\\|"); List<Dimension> dimensions = new ArrayList<>(); dimensions.add(new Dimen
for(int i =0;i<collection.size();i++){
String[] cell = collection.get(i).split("\\|\\|");
List<Dimension> dimensions = new ArrayList<>();
dimensions.add(new Dimension().withName(dimension[0]).withValue(cell[0]));
dimensions.add(new Dimension().withName(dimension[1]).withValue(cell[1]));
MetricDatum datum = new MetricDatum().withMetricName(metricName)
.withUnit(StandardUnit.None)
.withValue(Double.valueOf(cell[2]))
.withDimensions(dimensions);
PutMetricDataRequest request = new PutMetricDataRequest().withNamespace(namespace+"_"+cell[3]).withMetricData(datum);
String response = String.valueOf(cw.putMetricData(request));
GetMetricDataRequest res = new GetMetricDataRequest().withMetricDataQueries();
//cw.getMetricData();
com.amazonaws.services.cloudwatch.model.Metric m = new com.amazonaws.services.cloudwatch.model.Metric();
m.setMetricName(metricName);
m.setDimensions(dimensions);
m.setNamespace(namespace);
MetricStat ms = new MetricStat().withMetric(m);
MetricDataQuery metricDataQuery = new MetricDataQuery();
metricDataQuery.withMetricStat(ms);
metricDataQuery.withId("m1");
List<MetricDataQuery> mqList = new ArrayList<MetricDataQuery>();
mqList.add(metricDataQuery);
res.withMetricDataQueries(mqList);
GetMetricDataResult result1= cw.getMetricData(res);
}
for(inti=0;i我通过下面的代码从cloudwatch获得了结果\
GetMetricDataRequest getMetricDataRequest = new GetMetricDataRequest().withMetricDataQueries();
Integer integer = new Integer(300);
Iterator<Map.Entry<String, String>> entries = dimensions.entrySet().iterator();
List<Dimension> dList = new ArrayList<Dimension>();
while (entries.hasNext()) {
Map.Entry<String, String> entry = entries.next();
dList.add(new Dimension().withName(entry.getKey()).withValue(entry.getValue()));
}
com.amazonaws.services.cloudwatch.model.Metric metric = new com.amazonaws.services.cloudwatch.model.Metric();
metric.setNamespace(namespace);
metric.setMetricName(metricName);
metric.setDimensions(dList);
MetricStat ms = new MetricStat().withMetric(metric)
.withPeriod(integer)
.withUnit(StandardUnit.None)
.withStat("Average");
MetricDataQuery metricDataQuery = new MetricDataQuery().withMetricStat(ms)
.withId("m1");
List<MetricDataQuery> mqList = new ArrayList<>();
mqList.add(metricDataQuery);
getMetricDataRequest.withMetricDataQueries(mqList);
long timestamp = 1536962700000L;
long timestampEnd = 1536963000000L;
Date d = new Date(timestamp );
Date dEnd = new Date(timestampEnd );
getMetricDataRequest.withStartTime(d);
getMetricDataRequest.withEndTime(dEnd);
GetMetricDataResult result1= cw.getMetricData(getMetricDataRequest);
GetMetricDataRequest GetMetricDataRequest=new GetMetricDataRequest()。withMetricDataQueries();
整数=新整数(300);
迭代器条目=dimensions.entrySet().Iterator();
List dList=new ArrayList();
while(entries.hasNext()){
Map.Entry=entries.next();
添加(新维度().withName(entry.getKey()).withValue(entry.getValue()));
}
com.amazonaws.services.cloudwatch.model.Metric=新建com.amazonaws.services.cloudwatch.model.Metric();
metric.setNamespace(名称空间);
metric.setMetricName(metricName);
公制设置尺寸(数据列表);
MetricStat ms=新建MetricStat()。带公制(公制)
.withPeriod(整数)
.带单位(标准单位。无)
.保持不变(“平均”);
MetricDataQuery MetricDataQuery=新建MetricDataQuery()。withMetricStat(毫秒)
.withId(“m1”);
List mqList=new ArrayList();
添加(metricDataQuery);
getMetricDataRequest.withMetricDataQueries(mqList);
长时间戳=1536962000000L;
长时间戳结束=15369630000000L;
日期d=新日期(时间戳);
Date dEnd=新日期(timestampEnd);
getMetricDataRequest.withStartTime(d);
getMetricDataRequest.withEndTime(dEnd);
GetMetricDataResult result1=cw.getMetricData(getMetricDataRequest);
有人对Java SDK V2做过类似的事情吗?