diff --git a/template.yaml b/template.yaml index e7acb0f..d209385 100644 --- a/template.yaml +++ b/template.yaml @@ -759,6 +759,48 @@ Resources: AlarmActions: - !Sub arn:aws:sns:${AWS::Region}:${AWS::AccountId}:site-alerts + # Messages-present alarms on the async-invoke OnFailure DLQs, mirroring + # PayrollBatchDLQAlarm. Threshold > 0 on the visible-message count, ALARM-only. + ProcessPaymentCsvDLQAlarm: + Type: AWS::CloudWatch::Alarm + Properties: + AlarmName: payments-processPaymentCsv-async-dlq-messages + AlarmDescription: Failed processPaymentCsv async invocations landed in the DLQ + Namespace: AWS/SQS + MetricName: ApproximateNumberOfMessagesVisible + Dimensions: + - Name: QueueName + Value: !GetAtt ProcessPaymentCsvDLQ.QueueName + Statistic: Maximum + Period: 300 + EvaluationPeriods: 1 + Threshold: 0 + ComparisonOperator: GreaterThanThreshold + TreatMissingData: notBreaching + # ALARM-only notification by convention — no OK/recovery action + AlarmActions: + - !Sub arn:aws:sns:${AWS::Region}:${AWS::AccountId}:site-alerts + + ProcessPayrollEmailDLQAlarm: + Type: AWS::CloudWatch::Alarm + Properties: + AlarmName: payments-processPayrollEmail-async-dlq-messages + AlarmDescription: Failed processPayrollEmail async invocations landed in the DLQ + Namespace: AWS/SQS + MetricName: ApproximateNumberOfMessagesVisible + Dimensions: + - Name: QueueName + Value: !GetAtt ProcessPayrollEmailDLQ.QueueName + Statistic: Maximum + Period: 300 + EvaluationPeriods: 1 + Threshold: 0 + ComparisonOperator: GreaterThanThreshold + TreatMissingData: notBreaching + # ALARM-only notification by convention — no OK/recovery action + AlarmActions: + - !Sub arn:aws:sns:${AWS::Region}:${AWS::AccountId}:site-alerts + ProcessPayrollEmailLogGroup: Type: AWS::Logs::LogGroup Properties: