Найдите будильник с именем в Cloudwatch

Можно ли найти сигнал тревоги или проверить, существует ли он уже в CloudWatch, с помощью Java api?

Я сейчас так делаю, но мне это не кажется многообещающим.

    long offsetInMilliseconds = 1000 * 60 * 60 * 24;
    Dimension instanceDimension = new Dimension();
    instanceDimension.setName("InstanceId");
        instanceDimension.setValue("i-201cb891");

    //Check is Alarms with name exist.
    GetMetricStatisticsRequest getMetricStatisticsRequest  = new GetMetricStatisticsRequest()
            .withStartTime(new Date(new Date().getTime() - offsetInMilliseconds))
            .withNamespace("AWS/EC2")
            .withPeriod(60 * 60)
            .withMetricName("StatusCheckFailed")
            .withStatistics("Average")
            .withDimensions(Arrays.asList(instanceDimension))
            .withEndTime(new Date());

    GetMetricStatisticsResult getMetricStatisticsResult = cloudWatch.getMetricStatistics(getMetricStatisticsRequest);
    System.out.println("" + getMetricStatisticsResult.getDatapoints().size());
    if(getMetricStatisticsResult.getDatapoints().size() == 0) {
        PutMetricAlarmRequest request = new PutMetricAlarmRequest()
                .withActionsEnabled(true).withAlarmName("i-201cb891")
                .withComparisonOperator(ComparisonOperator.GreaterThanOrEqualToThreshold)
                .withDimensions(Arrays.asList(instanceDimension))
               // .withAlarmActions(getTopicARN())
                .withEvaluationPeriods(1)
                .withPeriod(60)
                .withThreshold(60.0D)
                .withStatistic(Statistic.Average)
                .withMetricName("StatusCheckFailed")
                .withNamespace("AWS/EC2");
        cloudWatch.putMetricAlarm(request);
        System.out.println("Alarm created for Instance with ID :  " + "i-201cb891");
    }else{
        System.out.println("Alarm exists with name : " + "i-201cb891");
    }

См. также:  Как получить доступ к дополнительным ресурсам AWS из созданной Amplify функции Lambda?
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. Yahiya

    Вы можете использовать интерфейс AmazonCloudWatch для запроса ваших будильников.

    Из AmazonCloudWatch API:

    DescribeAlarmsResult describeAlarms(DescribeAlarmsRequest describeAlarmsRequest)
    

    Вы можете использовать этот метод для запроса ваших сигналов тревоги, например, по имени или по префиксу.

    В следующем фрагменте кода показано, как использовать API:

    ...
    
    AmazonCloudWatch client = new AmazonCloudWatchClient(new ProfileCredentialsProvider());
    
    DescribeAlarmsRequest request = new DescribeAlarmsRequest();
    
    List<String> alarmNames = new ArrayList<String>();
    alarmNames.add("alarmName1");
    alarmNames.add("alarmName2");
    
    request.setAlarmNames(alarmNames);
    
    DescribeAlarmsResult result = client.describeAlarms(request);
    
    List<MetricAlarm> alarms = result.getMetricAlarms();
    
    for (MetricAlarm alarm : alarms) {
        System.out.println(alarm.getAlarmName());
    }
    
    ...
    

    Справочник по AWS SDK для Java API — 1.10.43

    как получить следующий набор сигналов тревоги с помощью токена? .. Я думаю, что сначала он дает мне только первые 50 из списка person Yahiya; 19.02.2016

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: