Skip to content

Alarms and Dashboard

CloudWatch
Amazon CloudWatch — alarms, dashboard (`event-driven-platform`), and structured Lambda logs for observability.
alarms monitor DLQ
Dead-letter queue — SQS queue receiving messages that exceeded maxReceiveCount (5). CloudWatch alarms fire when visible count ≥ 1.
depth, processor health, queue backlog, and ingest-sync errors. Wire SNS
Amazon Simple Notification Service — publishes CloudWatch alarm notifications; subscribe an email endpoint after deploy.
notifications for operational visibility.

From the demo repo root:

Terminal window
TOPIC_ARN="$(terraform -chdir=terraform output -raw alarm_topic_arn)"
aws sns subscribe \
--topic-arn "$TOPIC_ARN" \
--protocol email \
--notification-endpoint "you@example.com"

Confirm the subscription from your email inbox.

Terminal window
aws cloudwatch describe-alarms --alarm-names \
dlq-messages-visible reprocess-dlq-messages-visible \
processor-lambda-errors processor-lambda-throttles \
process-queue-stale-messages reprocess-queue-stale-messages \
process-queue-messages-visible ingest-sync-errors \
--query 'MetricAlarms[].{Name:AlarmName,State:StateValue}'

All alarms should exist. StateValue of OK is healthy; ALARM warrants investigation.

Terminal window
terraform -chdir=terraform output -raw cloudwatch_dashboard_name

Dashboard name: event-driven-platform. Open it in the CloudWatch console for your region.

The dashboard shows:

  • Alarm status summary
  • Queue depth and message age
  • Processor Lambda
    Processor Lambda container — runs PyTECGg calibration per SQS message; adopted when a Batch on Fargate parallel-execution quota increase was rejected. Image from `ghcr.io/platformfuzz/tec-processor-image` mirrored to ECR.
    throughput and concurrency
  • Lambda metrics for deployed layers
AlarmIndicates
dlq-messages-visibleIngest pipeline failures after 5 retries
reprocess-dlq-messages-visibleReprocess job failures after 5 retries
processor-lambda-errorsProcessor invocation errors
processor-lambda-throttlesConcurrency quota exhaustion
process-queue-messages-visible

Ingest backlog
SQS standard queue — receives S3 ObjectCreated notifications for new raw RINEX files; triggers processor Lambda ingest path.
(threshold default 100)

process-queue-stale-messagesMessages older than 1800s on process queue
reprocess-queue-stale-messagesStale messages on reprocess queue
ingest-sync-errorsScheduled ingest failures

See Common Issues for remediation per component.