1

AmazonEC2 API を介して ec2 インスタンスのアラームステータスを表示する方法があるかどうか疑問に思っていましたか?

アラームステータス

AmazonCloudWatch.GetMetricStatistics メソッドを使用して特定のメトリクス値を取得する実用的なソリューションを実装しました。

var reg = new GetMetricStatisticsRequest()
            {
                MetricName = metric,
                Period = 60 * 30,
                Statistics = new List<string> { AVERAGE },
                Dimensions = dimensions,
                Namespace = "AWS/EC2",
                EndTime = DateTime.Now.ToUniversalTime(),
                StartTime = DateTime.Parse(startTime)
            };

data.Columns.Add(AVERAGE);
data.Columns.Add(TIMESTAMP);

var points = Service.GetMetricStatistics(reg).GetMetricStatisticsResult.Datapoints.OrderBy(p => p.Timestamp);

ただし、アラームのステータスを直接確認する方が便利です。

AmazonEC2.DescribeInstancesResponse の結果を反復しましたが、今のところ満足していません。誰もこれを達成しましたか?

ありがとう

4

1 に答える 1

2

アラームのステータスを取得するには、AmazonCloudWatch.DescribeAlarmsメソッドを使用できます。アラームステータスを取得する方法のコードサンプルを次に示します(US-West-2地域)。

        var cloudWatchClient = AWSClientFactory.CreateAmazonCloudWatchClient(RegionEndpoint.USWest2);
        var describeAlarmsResponse = cloudWatchClient.DescribeAlarms(new DescribeAlarmsRequest
        {
            AlarmNames = { "the_name_of_your_alarm" }
        });
        var describeAlarmsResult = describeAlarmsResponse.DescribeAlarmsResult;
        foreach (var alarm in describeAlarmsResult.MetricAlarms)
        {
            Console.WriteLine("Alarm State = " + alarm.StateValue);
            Console.WriteLine("Alarm State Reason = " + alarm.StateReason);
            Console.WriteLine("Alarm JSON Data = " + alarm.StateReasonData);
        }
于 2012-11-07T17:42:14.307 に答える