【问题标题】:How to define a CloudWatch Alarm on the sum of two metrics with CloudFormation?如何使用 CloudFormation 针对两个指标的总和定义 CloudWatch 警报?
【发布时间】:2019-07-21 07:50:53
【问题描述】:

当两个不同队列上的相同指标 (ApproximateNumberOfMessagesVisible) 的总和超过 100 的值时,我需要触发警报

在 17 年 9 月,this 回答指出,唯一的方法是使用 Lambda 函数获取这两个值并通过 CloudWatch API 将它们相加。

在 19 年 2 月撰写本文时,可以使用“Metric Math”,因此不需要 lambda 函数或 EC2 实例。是否可以使用 Metric Math 直接在 CloudFormation 中定义警报?

【问题讨论】:

    标签: amazon-cloudformation amazon-cloudwatch amazon-cloudwatch-metrics


    【解决方案1】:

    其实可以直接在CloudFormation中实现Alarm逻辑。

    假设有两个扩展策略ECSScaleUp 和ECSScaleDown,警报定义将如下所示:

    ECSWorkerSQSCumulativeAlarm:
      Type: AWS::CloudWatch::Alarm
      Properties:
        AlarmName: !Join ['-', [!Ref 'MyService', 'SQSCumulativeAlarm']]
        AlarmDescription: "Trigger ECS Service Scaling based on TWO SQS queues"
        Metrics:
          - Id: e1
            Expression: "fq + sq"
            Label: "Sum of the two Metrics"
          - Id: fq
            MetricStat:
              Metric:
                MetricName: ApproximateNumberOfMessagesVisible
                Namespace: AWS/SQS
                Dimensions:
                  - Name: QueueName
                    Value: !GetAtt [ FirstQueue, QueueName]
            Period: 60
            Stat: Average
            Unit: Count
            ReturnData: false
          - Id: sq
            MetricStat:
              Metric:
                MetricName: ApproximateNumberOfMessagesVisible
                Namespace: AWS/SQS
                Dimensions:
                  - Name: QueueName
                    Value: !GetAtt [ SecondQueue, QueueName]
              Period: 60
              Stat: Average
              Unit: Count
            ReturnData: false
        EvaluationPeriods: 2
        Threshold: 100
        ComparisonOperator: GreaterThanThreshold
        AlarmActions:
          - !Ref ECSScaleUp
          - !Ref ECSScaleDown
        OKActions:
          - !Ref ECSScaleUp
          - !Ref ECSScaleDown
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      • 2019-12-26
      • 1970-01-01
      • 2022-01-01
      • 2018-10-20
      • 2019-12-03
      • 1970-01-01
      相关资源
      最近更新 更多