Kon*_*hin 6

您将需要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);
}