Amazon EC2 – 如何通过AWS API获取可用的ram和cpu?

如何通过AWS API获得ram和cpu使用?

您将需要AmazonCloudWatch API来收集此统计信息。 不幸的是,它没有提供ram使用信息。 其中一个解决方案可能是创建自己的“RAMUsage”指标并实施ram使用监控服务,该服务将在所有EC2实例上运行并将此信息添加到CloudWatch。

以下是使用AWS API接收最近5分钟“CPUUtilization”指标的示例。

var client = AWSClientFactory.CreateAmazonCloudWatchClient( , ); var dimension = new Dimension { Name = "InstanceId", Value = , }; var request = new GetMetricStatisticsRequest(); request.Dimensions.Add(dimension); var currentTime = DateTime.UtcNow; var startTime = currentTime.AddMinutes(-5); request.StartTime = startTime.ToString( AWSSDKUtils.ISO8601DateFormat, CultureInfo.InvariantCulture.DateTimeFormat); request.EndTime = currentTime.ToString( AWSSDKUtils.ISO8601DateFormat, CultureInfo.InvariantCulture.DateTimeFormat); request.Namespace = "AWS/EC2"; request.Statistics.Add("Maximum"); request.Statistics.Add("Average"); request.MeasureName = "CPUUtilization"; request.Period = 300; var response = client.GetMetricStatistics(request); if (response.IsSetGetMetricStatisticsResult() && response.GetMetricStatisticsResult.Datapoints.Count > 0) { var dataPoint = response.GetMetricStatisticsResult.Datapoints[0]; Console.WriteLine( "Instance: {0} CPU Average load: {1} CPU Max load: {2}", instanceID, dataPoint.Average, dataPoint.Maximum); }