# # This sample adds Amazon CloudWatch alarms to the AWS Elastic Beanstalk Elastic Load Balancer. # # To configure the Alarm, you should create a separate configuration file that contains # an option-settings section such as the following (all properties are showing the default values). # # option_settings: # "aws:elasticbeanstalk:customoption": # ELBAlarmEmail: "nobody@amazon.com" # ELBHealthyHostCount: "1" # ELBLatency: "0.5" # ELBHTTP5xxErrors: "0" # ## Resources: ELBAlarmTopic: Type: AWS::SNS::Topic Properties: Subscription: - Endpoint: Fn::GetOptionSetting: OptionName: ELBAlarmEmail DefaultValue: "nobody@amazon.com" Protocol: email ELBHealthyHostCountAlarm: Type: AWS::CloudWatch::Alarm Properties: AlarmDescription: { "Fn::Join" : ["", [{ "Ref" : "AWSEBEnvironmentName" }, ": ELB no healthy backend hosts." ]]} Namespace: AWS/ELB MetricName: HealthyHostCount Dimensions: - Name: LoadBalancerName Value : { "Ref" : "AWSEBLoadBalancer" } Statistic: Average Period: 300 EvaluationPeriods: 1 Threshold: Fn::GetOptionSetting: OptionName: ELBHealthyHostCount DefaultValue: "1" ComparisonOperator: LessThanThreshold AlarmActions: - Ref: ELBAlarmTopic InsufficientDataActions: - Ref: ELBAlarmTopic ELBLatencyAlarm: Type: AWS::CloudWatch::Alarm Properties: AlarmDescription: { "Fn::Join" : ["", [{ "Ref" : "AWSEBEnvironmentName" }, ": HIGH ELB latency." ]]} Namespace: AWS/ELB MetricName: Latency Dimensions: - Name: LoadBalancerName Value : { "Ref" : "AWSEBLoadBalancer" } Statistic: Average Period: 300 EvaluationPeriods: 1 Threshold: Fn::GetOptionSetting: OptionName: ELBLatency DefaultValue: "0.5" ComparisonOperator: GreaterThanThreshold AlarmActions: - Ref: ELBAlarmTopic InsufficientDataActions: - Ref: ELBAlarmTopic ELBHTTP5xBEAlarm: Type: AWS::CloudWatch::Alarm Properties: AlarmDescription: { "Fn::Join" : ["", [{ "Ref" : "AWSEBEnvironmentName" }, ": HIGH ELB backend HTTP 5xx error rate." ]]} Namespace: AWS/ELB MetricName: HTTPCode_Backend_5XX Dimensions: - Name: LoadBalancerName Value : { "Ref" : "AWSEBLoadBalancer" } Statistic: Sum Period: 300 EvaluationPeriods: 1 Threshold: Fn::GetOptionSetting: OptionName: ELBHTTP5xxErrors DefaultValue: "0" ComparisonOperator: GreaterThanThreshold AlarmActions: - Ref: ELBAlarmTopic InsufficientDataActions: - Ref: ELBAlarmTopic