mirror of
https://github.com/Sea-Haven-Industries/apm-wo-analysis.git
synced 2026-09-30 03:03:14 +00:00
Add DLQ messages-present alarm for classifier (INFRA-57) (#26)
Some checks failed
Deploy / deploy (push) Has been cancelled
Some checks failed
Deploy / deploy (push) Has been cancelled
The classifier DLQ (apm-wo-analysis-classifier-dlq) had no alarm, so a message landing there after Lambda exhausts async retries — a genuinely dropped classifier run — surfaced nowhere. Add a CloudWatch alarm on AWS/SQS ApproximateNumberOfMessagesVisible (Maximum, threshold >0, 300s period, 1 evaluation period, notBreaching) that pages the shared site-alerts SNS topic. Mirrors the workorder-email-processor-dlq-messages alarm in procurement-ingest's wo_stack and the payments-payroll-batch-dlq-messages alarm convention. ALARM-only, no OK action, per the CloudWatch-alarm preference.
This commit is contained in:
parent
3456c7a37b
commit
44ad13d8cd
1 changed files with 37 additions and 0 deletions
|
|
@ -29,6 +29,12 @@ from aws_cdk import (
|
|||
from aws_cdk import (
|
||||
aws_certificatemanager as acm,
|
||||
)
|
||||
from aws_cdk import (
|
||||
aws_cloudwatch as cloudwatch,
|
||||
)
|
||||
from aws_cdk import (
|
||||
aws_cloudwatch_actions as cw_actions,
|
||||
)
|
||||
from aws_cdk import (
|
||||
aws_glue as glue,
|
||||
)
|
||||
|
|
@ -56,6 +62,9 @@ from aws_cdk import (
|
|||
from aws_cdk import (
|
||||
aws_secretsmanager as secretsmanager,
|
||||
)
|
||||
from aws_cdk import (
|
||||
aws_sns as sns,
|
||||
)
|
||||
from aws_cdk import (
|
||||
aws_sqs as sqs,
|
||||
)
|
||||
|
|
@ -238,6 +247,34 @@ class PipelineStack(Stack):
|
|||
retention_period=Duration.days(14),
|
||||
enforce_ssl=True,
|
||||
)
|
||||
|
||||
# DLQ messages-present alarm — a message only lands here after Lambda
|
||||
# exhausts its async retries and gives up, i.e. a genuinely dropped run.
|
||||
# MAXIMUM over a 5-min window so a single visible message pages even if it
|
||||
# is later consumed/redriven. ALARM-only (no OK action, per the
|
||||
# CloudWatch-alarm preference) to the shared site-alerts topic.
|
||||
alarm_topic = sns.Topic.from_topic_arn(
|
||||
self,
|
||||
"SiteAlertsTopic",
|
||||
f"arn:aws:sns:{self.region}:{self.account}:site-alerts",
|
||||
)
|
||||
classifier_dlq.metric_approximate_number_of_messages_visible(
|
||||
period=Duration.minutes(5),
|
||||
statistic="Maximum",
|
||||
).create_alarm(
|
||||
self,
|
||||
"ClassifierDlqMessagesAlarm",
|
||||
alarm_name="apm-wo-analysis-classifier-dlq-messages",
|
||||
alarm_description=(
|
||||
"apm-wo-analysis-classifier DLQ has visible messages "
|
||||
"(dropped classifier run)"
|
||||
),
|
||||
threshold=0,
|
||||
evaluation_periods=1,
|
||||
comparison_operator=cloudwatch.ComparisonOperator.GREATER_THAN_THRESHOLD,
|
||||
treat_missing_data=cloudwatch.TreatMissingData.NOT_BREACHING,
|
||||
).add_alarm_action(cw_actions.SnsAction(alarm_topic))
|
||||
|
||||
self.classifier_fn = lambda_.Function(
|
||||
self,
|
||||
"Classifier",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue