I did not received data points while calling AWS IVS- AWS Cloud watch ConcurrentViews (Java)

26 views Asked by At

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

0

There are 0 answers