Тревога AWS CloudWatch, ошибка решения справки - не отмечено: первоначальное создание тревоги - PullRequest
0 голосов
/ 08 мая 2018

Я постоянно нахожусь в состоянии INSUFFICENT_DATA для предупреждения об уменьшении количества облачных часов. Тревога CloudWatch прикреплена к моей группе автоматического масштабирования. Последние 3 дня мой аварийный сигнал уменьшался, поэтому он окончательно инициализирован.

В моей тревоге это дает причину

Не отмечено: первоначальное создание тревоги

Это из документации по aws: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html

INSUFFICIENT_DATA - тревога только что началась, метрика недоступна или недостаточно данных для метрики для определения состояния тревоги

Вот фрагмент из моего шаблона облачной информации, который выдает тревогу за облачными часами. Он имеет синтаксис тропосферы, но его должно быть достаточно легко прочитать:

template.add_resource(Alarm(
    "CPUUtilizationLowAlarm",
    ActionsEnabled=True,
    AlarmDescription="Scale down for average CPUUtilization <= 30%",
    Namespace="AWS/EC2",
    MetricName="CPUUtilization",
    Statistic="Average",
    Period="300",
    EvaluationPeriods="3",
    Threshold="30",
    Unit="Percent",
    ComparisonOperator="LessThanOrEqualToThreshold",
    AlarmActions=[Ref("ScaleDownPolicy")],
    Dimensions=[
        MetricDimension(
            Name="AutoscalingGroupName",
            Value=Ref("AutoScalingGroup")
        )
    ]
))
template.add_resource(ScalingPolicy(
    "ScaleDownPolicy",                                                      #Simple reference value, nothing special
    AdjustmentType="ChangeInCapacity",                                      #Modify the asg capacity
    AutoScalingGroupName=Ref("AutoScalingGroup"),                           #What asg to modify capacity
    PolicyType="SimpleScaling",                                             #Read about it here: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scale-based-on-demand.html
    Cooldown="1700",                                                        #How long to wait before checking status' again
    ScalingAdjustment=Ref("DownscalingCount")                               #(Must be a negative number!!) How much to scale down
))

Как вы видите, я уменьшаю масштаб на основе CPUUtilization Тревога по использованию автоматического масштабирования процессора Amazon EC2 - НЕДОСТАТОЧНЫЕ ДАННЫЕ

Я делаю почти то же самое, но использую «Step Scaling» вместо «Simple Scaling», как описано выше, но на самом деле это работает для меня. Вот фрагмент моего шаблона облачной информации для моего сигнала о масштабировании шага (Увеличение):

template.add_resource(Alarm(
    "CPUUtilizationHighAlarm",
    ActionsEnabled=True,
    AlarmDescription="Scale up for average CPUUtilization >= 50%",
    MetricName="CPUUtilization",
    Namespace="AWS/EC2",
    Statistic="Average",
    Period="300",
    EvaluationPeriods="1",
    Threshold="50",
    Unit="Percent",
    ComparisonOperator="GreaterThanOrEqualToThreshold",
    AlarmActions=[Ref("ScaleUpPolicy")],
    Dimensions=[
        MetricDimension(
            Name="AutoScalingGroupName",
            Value=Ref("AutoScalingGroup")
        )
    ]
))
template.add_resource(ScalingPolicy(
    "ScaleUpPolicy",
    AdjustmentType="ChangeInCapacity",
    AutoScalingGroupName=Ref("AutoScalingGroup"),                           #What group to attach this to
    EstimatedInstanceWarmup="1700",                                         #How long it will take before instance is ready for traffic
    MetricAggregationType="Average",                                        #Breach if average is above threshold
    PolicyType="StepScaling",                                               #Read above step scaling here: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scale-based-on-demand.html
    StepAdjustments=[                                                       
        StepAdjustments(
            MetricIntervalLowerBound="0",                                   #From 50 (Defined in alarm as 50% CPU)
            MetricIntervalUpperBound="20",                                  #To 70%
            ScalingAdjustment="1"                                           #Scale up 1 instance
        ),
        StepAdjustments(
            MetricIntervalLowerBound="20",                                  #from 70%
            MetricIntervalUpperBound="40",                                  #to 90%
            ScalingAdjustment="2"                                           #Scale up 2 instances
        ),
        StepAdjustments(
            MetricIntervalLowerBound="40",                                  #From 90% or above (Defined in alarm)
            ScalingAdjustment="3"                                           #Scale up 2 instances
        )
    ]
))

Я в растерянности относительно того, что я неправильно настроил в сигнале тревоги при понижении частоты. Если у кого-то есть какие-либо предложения или помощь, это было бы здорово.

1 Ответ

0 голосов
/ 10 мая 2018

Я нашел проблему ...

Ошибка была здесь:

MetricDimension(
        Name="AutoscalingGroupName",
        Value=Ref("AutoScalingGroup")
    )

Name должно быть AutoScalingGroupName НЕ AutoscalingGroupName. Он будет пытаться сгенерировать новое измерение и не будет правильно извлекать из группы автомасштабирования. Таким образом, он не выдаст ошибку и все раскрутится, у него просто не будет данных для извлечения. Поэтому останется в состоянии INSUFFICENT_DATA до конца времени.

Капитал "S" ...

...