def get_cloudwatch_metric_data_points()

in source/ecs/metrics_helper.py [0:0]


    def get_cloudwatch_metric_data_points(self, workspace_id, list_time_ranges, metric):
        """
        This method returns the cloudwatch metric datapoints for given workspace id and time ranges.
        :param metric: metric to use to query cloudwatch metrics
        :param workspace_id:
        :param list_time_ranges: List of time ranges to query and get the metrics for
        :return: list of Datapoints for the cloudwatch metrics
        """
        log.debug("Getting the cloudwatch metrics for the workspace id {}".format(workspace_id))
        list_data_points = []
        for time_range in list_time_ranges:
            try:
                metrics = self.client.get_metric_statistics(
                    Dimensions=[{
                        'Name': 'WorkspaceId',
                        'Value': workspace_id
                    }],
                    Namespace='AWS/WorkSpaces',
                    MetricName=metric,
                    StartTime=time_range[START_TIME],
                    EndTime=time_range[END_TIME],
                    Period=300,
                    Statistics=['Maximum']
                )
            except Exception as error:
                log.error("Error occurred while processing workspace {}, {}".format(workspace_id, error))
                return None
            for metric_data in metrics['Datapoints']:
                list_data_points.append(metric_data)
        log.debug("The cloudwatch metrics list for workspace id {} is {}".format(workspace_id, list_data_points))
        return list_data_points