繁体   English   中英

Amazon EC2 - 如何通过 AWS API 获得可用的 ram 和 cpu 使用率?

[英]Amazon EC2 - how to get available ram and cpu usage via AWS API?

如何通过 AWS API 获得可用的内存和 CPU 使用率?

您将需要AmazonCloudWatch API 来收集此统计信息。 不幸的是,它不提供内存使用信息。 一种解决方案可能是创建您自己的“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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM