Aws Cloud Watch returns 200 OK status with out datapoints. Stream is live.
cw = AmazonCloudWatchClientBuilder.standard().withRegion(EU_WEST_2).withCredentials(credentialsProvider).build();
`
public static double countLiveStream(String arn, Date startTime, Date endTime) {
String name = "ConcurrentViews";
try {
logger.info("Count Live Stream For ARN: " + arn);
Dimension d=new Dimension();
d.setName("Channel");
d.setValue(arn.split("/")[1]);
Collection<Dimension> dem= new ArrayList<Dimension>();
dem.add(d);
Metric met = new Metric();
met.setMetricName(name);
met.setNamespace(NAMESPACE);
met.setDimensions(dem);
MetricStat metStat = new MetricStat();
metStat.setStat("Average");
metStat.setPeriod(10);
metStat.setMetric(met);
MetricDataQuery dataQUery = new MetricDataQuery();
dataQUery.setMetricStat(metStat);
dataQUery.setId("concurrentviews");
// dataQUery.setReturnData(true);
List<MetricDataQuery> dq = new ArrayList<>();
dq.add(dataQUery);
GetMetricDataRequest getMetReq = new GetMetricDataRequest();
getMetReq.setMaxDatapoints(100);
//getMetReq.setScanBy(ScanBy.TimestampDescending.toString());
getMetReq.setStartTime(startTime);
getMetReq.setEndTime(endTime);
getMetReq.setMetricDataQueries(dq);
logger.info("Metrics Request " + getMetReq);
GetMetricDataResult response = cw.getMetricData(getMetReq);
logger.info(response.toString());
List<MetricDataResult> data = response.getMetricDataResults();
double views = 0;
for (MetricDataResult item : data) {
logger.info("The label is " + item.getLabel());
logger.info("The status code is " + item.getStatusCode().toString());
logger.info("The values are " + item.getValues().toString());
logger.info("The timestamps are " + item.getTimestamps().toString());
if (!item.getValues().isEmpty()) views = calculateAvg(item.getValues());
}
return views;
} catch (Exception e) {
logger.log(SEVERE, e.toString());
}
return 0;
}`
Aws Cloud Watch returns 200 OK status with out datapoints. Stream is live.
cw = AmazonCloudWatchClientBuilder.standard().withRegion(EU_WEST_2).withCredentials(credentialsProvider).build();
`
public static double countLiveStream(String arn, Date startTime, Date endTime) {
String name = "ConcurrentViews";
try {
logger.info("Count Live Stream For ARN: " + arn);
Dimension d=new Dimension();
d.setName("Channel");
d.setValue(arn.split("/")[1]);
Collection<Dimension> dem= new ArrayList<Dimension>();
dem.add(d);
Metric met = new Metric();
met.setMetricName(name);
met.setNamespace(NAMESPACE);
met.setDimensions(dem);
MetricStat metStat = new MetricStat();
metStat.setStat("Average");
metStat.setPeriod(10);
metStat.setMetric(met);
MetricDataQuery dataQUery = new MetricDataQuery();
dataQUery.setMetricStat(metStat);
dataQUery.setId("concurrentviews");
// dataQUery.setReturnData(true);
List<MetricDataQuery> dq = new ArrayList<>();
dq.add(dataQUery);
GetMetricDataRequest getMetReq = new GetMetricDataRequest();
getMetReq.setMaxDatapoints(100);
//getMetReq.setScanBy(ScanBy.TimestampDescending.toString());
getMetReq.setStartTime(startTime);
getMetReq.setEndTime(endTime);
getMetReq.setMetricDataQueries(dq);
logger.info("Metrics Request " + getMetReq);
GetMetricDataResult response = cw.getMetricData(getMetReq);
logger.info(response.toString());
List<MetricDataResult> data = response.getMetricDataResults();
double views = 0;
for (MetricDataResult item : data) {
logger.info("The label is " + item.getLabel());
logger.info("The status code is " + item.getStatusCode().toString());
logger.info("The values are " + item.getValues().toString());
logger.info("The timestamps are " + item.getTimestamps().toString());
if (!item.getValues().isEmpty()) views = calculateAvg(item.getValues());
}
return views;
} catch (Exception e) {
logger.log(SEVERE, e.toString());
}
return 0;
}`
Please guide what i am going wrong or am missing something or passing invalid parameters