public static void InvokeListMetrics() { NameValueCollection appConfig = ConfigurationManager.AppSettings; // Print the number of Amazon CloudWatch metrics. IAmazonCloudWatch cw = AWSClientFactory.CreateAmazonCloudWatchClient(RegionEndpoint.USWest2); try { ListMetricsResponse cwResponse = cw.ListMetrics(new ListMetricsRequest()); int numMetrics = 0; numMetrics = cwResponse.Metrics.Count; Console.WriteLine("You have " + numMetrics + " Amazon CloudWatch metric(s)."); } catch (AmazonCloudWatchException ex) { if (ex.ErrorCode.Equals("OptInRequired")) { Console.WriteLine("You are not signed for Amazon EC2."); Console.WriteLine("You can sign up at http://aws.amazon.com/ec2."); } else { Console.WriteLine("Caught Exception: " + ex.Message); Console.WriteLine("Response Status Code: " + ex.StatusCode); Console.WriteLine("Error Code: " + ex.ErrorCode); Console.WriteLine("Error Type: " + ex.ErrorType); Console.WriteLine("Request ID: " + ex.RequestId); } } Console.WriteLine(); }
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); } }
public void Connect() { if (ec2 != null) { throw new ZAwsEWrongState("Controller is already open"); } Debug.Assert(route53 == null); Debug.Assert(s3 == null); Debug.Assert(!RunMonitoring); Debug.Assert(MonitoringThread == null); ec2 = AWSClientFactory.CreateAmazonEC2Client(awsAccessKey, awsSecretKey, new AmazonEC2Config().WithServiceURL(awsEc2ZoneUrl)); route53 = AWSClientFactory.CreateAmazonRoute53Client(awsAccessKey, awsSecretKey, new AmazonRoute53Config() { ServiceURL = awsRoute53ZoneUrl }); s3 = AWSClientFactory.CreateAmazonS3Client(awsAccessKey, awsSecretKey, new AmazonS3Config().WithServiceURL(awsS3ZoneUrl)); CloudWatch = AWSClientFactory.CreateAmazonCloudWatchClient(awsAccessKey, awsSecretKey, new AmazonCloudWatchConfig() { ServiceURL = awsCloudWatchZoneUrl }); //Start the thread MonitoringThread = new Thread(new ThreadStart(MonitorFunction)); RunMonitoring = true; MonitoringThread.Start(); }
public CloudWatchClient() { var aws = CManager.Settings.AWS; _service = AWSClientFactory.CreateAmazonCloudWatchClient(aws.AccessKey, aws.SecretAccessKey, RegionEndpoint.GetBySystemName(aws.RegionEndpoint)); }