Amazon EC2 - как получить доступное использование оперативной памяти и процессора через AWS API? - PullRequest
0 голосов
/ 30 июня 2011

как получить доступное использование оперативной памяти и процессора через AWS API?

1 Ответ

6 голосов
/ 30 июня 2011

Вам понадобится AmazonCloudWatch API для сбора этой статистики.К сожалению, он не предоставляет информацию об использовании оперативной памяти.Одним из решений может быть создание собственной метрики RAMUsage и внедрение службы мониторинга использования оперативной памяти, которая будет работать на всех экземплярах EC2 и добавлять эту информацию в CloudWatch.последние 5 минут с использованием AWS API.


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);
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...