001*_*001 0 c# asp.net api amazon-ec2 amazon-web-services
如何通过AWS API获得ram和cpu使用?
您将需要AmazonCloudWatch API来收集此统计信息.不幸的是,它没有提供ram使用信息.其中一个解决方案可能是创建您自己的"RAMUsage"指标并实施ram使用监控服务,该服务将在所有EC2实例上运行并将此信息添加到CloudWatch.
以下是使用AWS API接收最近5分钟"CPUUtilization"指标的示例.
var client = AWSClientFactory.CreateAmazonCloudWatchClient(
<AWSAccessKey>,
<AWSSecretKey>);
var dimension = new Dimension
{
Name = "InstanceId",
Value = <InstanceId>,
};
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);
}