Ejemplo n.º 1
0
        IEnumerable <DataPoint> GetCPUUtilizationForInstance(string instanceId, DateTime start, DateTime end)
        {
            //build request
            var req = new GetMetricStatisticsRequest()
            {
                Dimensions =
                {
                    new Dimension
                    {
                        Name  = "InstanceId",
                        Value = instanceId
                    }
                },
                MetricName = "CPUUtilization",
                Statistics = new List <String> {
                    "Average"
                },
                Period    = 60,
                Unit      = "Percent",
                Namespace = "AWS/EC2",
                StartTime = start,
                EndTime   = end
            };

            //send request
            //cloudwatch client
            var cloudWatch = AWSClientFactory.CreateAmazonCloudWatchClient(AWSAccessKey,
                                                                           AWSSecretKey,
                                                                           new AmazonCloudWatchConfig()
            {
                ServiceURL = RegionHelper.CloudWatchEndpointForRegion(EC2Region)
            }
                                                                           );

            try
            {
                var response = cloudWatch.GetMetricStatistics(req);
                if (response.GetMetricStatisticsResult == null)
                {
                    return(null);
                }

                return(response.GetMetricStatisticsResult.Datapoints.Select(datapoint => new DataPoint {
                    Value = datapoint.Average, TimeStamp = datapoint.Timestamp
                }));
            }
            catch (Exception ex)
            {
                return(null);
            }
        }