为AWS Fargate设置Cloudwatch Alarm高低阈值

时间:2019-04-17 14:41:03

标签: amazon-cloudwatch amazon-ecs cloudwatch-alarms

我已经创建了一个自动扩展目标和附加的策略。

AutoScalingPolicy:
    Type: AWS::ApplicationAutoScaling::ScalingPolicy
    Properties:
      PolicyName: !Join ['', [!Ref ServiceName, auto-scaling-policy]]
      PolicyType: TargetTrackingScaling
      ScalingTargetId: !Ref AutoScalingTarget
      TargetTrackingScalingPolicyConfiguration:
        PredefinedMetricSpecification:
          PredefinedMetricType: ECSServiceAverageCPUUtilization
        ScaleInCooldown: 10
        ScaleOutCooldown: 10
        # Keep things at or lower than 50% CPU utilization, for example
        TargetValue: !Ref AutoScalingTargetValue

这将创建cloudwatch警报为:

3 datapoints within 3 minutes

15 datapoints within 15 minutes

我想对此进行自定义:

1 datapoint within 1 minute

1 datapoint within 1 minute

我能够从AWS控制台手动执行此操作。但是,努力寻找一种使用cloudformation模板执行此操作的方法。

2 个答案:

答案 0 :(得分:1)

目标跟踪实际上没有“高”和“低”阈值。通过目标跟踪,您可以设置要尝试保持的目标CPU利用率百分比值,然后自动缩放会自动上下更新任务数,以尝试将CPU利用率保持在该值。

如果您希望获得更精细的控制,则需要使用“逐步扩展策略”。这允许您设置特定的值,例如“如果CPU百分比超出目标50%的0%至10%,然后增加1”,以及“如果CPU百分比超出目标50%的10%至20%,然后增加2”。

您可以在以下可下载的开放源代码CloudFormation模板中看到这种逐步扩展策略的示例:https://containersonaws.com/architecture/autoscaling-service-containers/太久不能直接包含在此答案中,但是您可以将这些官方AWS示例模板用作逐步扩展策略的起点。

答案 1 :(得分:0)

尽管目标跟踪允许您指定一个值,但在CloudWatch的掩盖下会变成两个警报。 High警报将为YourMetric > YourTargetValue for X datapoints for Y minutesLow警报将为YourMetric < SomeValue for A datapoints for B minutes