[英]Create CloudWatch alarm on multiple SQS queues
假设我在自动扩展组中有N个 EC2 实例,每个实例都在轮询M个 SQS 队列。 如果可能,我将如何在所有 SQS 队列中的累积ApproximateNumberOfMessagesVisible
上创建警报?
到目前为止,没有可用的可见消息量度累积计数。
这是解决问题的方法,
创建一个Lambda / cron作业,该作业可以轮询队列,在每个队列上获取ApproximateNumberOfMessages
,并将总消息更新为自定义Cloudwatch指标。
QueueAttributes:
http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueAttributes.html
自定义Cloudwatch指标:
http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html
您可以创建一个lambda(无服务器),或者如果您希望基于服务器,则可以使用cli将总计数轮询并更新到自定义cloudwatch指标中,并将其更新为AWS cloudwatch。
有了cloudwatch指标后,您可以基于这些数字创建警报。
希望能帮助到你。
您可以定义带有云层的警报。 关键是定义一个自定义
表达式,其中每个表达式按队列具有一个或多个指标。 Dimesions 允许将度量与队列相关联。
MyDeadLetterQueueAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmName: my-dlq-alarm
AlarmDescription: 'Alarm when any Dead letter queue has items.'
Metrics:
- Id: summary
Label: Dead Letter Queues Alarm
Expression: IF(dlq1 > 1, 1, 0) OR IF(dlq2 > 1, 1, 0)
ReturnData: true
- Id: dlq1
MetricStat:
Metric:
Namespace: AWS/SQS
MetricName: ApproximateNumberOfMessagesVisible
Dimensions:
- Name: QueueName
Value: !GetAtt
- MyDeadLetterQueue1
- QueueName
Stat: Sum
Period: 300
ReturnData: false
- Id: dlq2
MetricStat:
Metric:
Namespace: AWS/SQS
MetricName: ApproximateNumberOfMessagesVisible
Dimensions:
- Name: QueueName
Value: !GetAtt
- MyDeadLetterQueue2
- QueueName
Stat: Sum
Period: 300
ReturnData: false
EvaluationPeriods: 1
DatapointsToAlarm: 1
Threshold: 0
ComparisonOperator: GreaterThanThreshold
TreatMissingData: notBreaching
AlarmActions:
- !Ref MyTopicArn
我认为您应该将表达式求和以具有累积值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.