Skip to main content

AWS CloudWatch

Fluidify Regen receives CloudWatch alarms via Amazon SNS webhooks. When an alarm transitions to ALARM state, Regen creates an alert and optionally an incident.

Webhook URL

POST https://your-domain.com/api/v1/webhooks/cloudwatch

Setup

Step 1: Create an SNS topic

aws sns create-topic --name fluidify-regen-alerts

Note the topic ARN: arn:aws:sns:us-east-1:123456789:fluidify-regen-alerts

Step 2: Subscribe Regen as an HTTPS endpoint

aws sns subscribe \
--topic-arn arn:aws:sns:us-east-1:123456789:fluidify-regen-alerts \
--protocol https \
--notification-endpoint https://your-domain.com/api/v1/webhooks/cloudwatch

Regen automatically confirms the subscription when it receives the confirmation request from SNS.

Note: SNS requires HTTPS. Use a domain with a valid TLS certificate. For local testing, use an HTTPS tunnel (e.g. ngrok).

Step 3: Add the SNS topic to a CloudWatch alarm

aws cloudwatch put-metric-alarm \
--alarm-name "HighErrorRate" \
--alarm-actions arn:aws:sns:us-east-1:123456789:fluidify-regen-alerts \
--ok-actions arn:aws:sns:us-east-1:123456789:fluidify-regen-alerts \
...

Always add both --alarm-actions (firing) and --ok-actions (resolving) so Regen can close the alert automatically.

How alarm fields map to Regen

CloudWatch fieldRegen fieldNotes
AlarmNameTitle
AlarmDescriptionDescription
NewStateValueStatusALARM → firing, OK → resolved
AlarmArnExternalIDUsed for deduplication
AWSAccountId + regionLabelsStored for context
Trigger.MetricNameLabelsStored for context

Severity mapping

CloudWatch alarms don't have a native severity field. Regen maps based on alarm name keywords:

Alarm name containsRegen severity
critical, p0, p1Critical
warning, warn, p2Warning
(anything else)Warning (default)

To set severity explicitly, include it in the alarm name:

  • payments-api-error-rate-critical
  • disk-usage-warning