Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
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);
            }
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        public CloudWatchClient()
        {
            var aws = CManager.Settings.AWS;

            _service = AWSClientFactory.CreateAmazonCloudWatchClient(aws.AccessKey, aws.SecretAccessKey, RegionEndpoint.GetBySystemName(aws.RegionEndpoint));
        }