Cloudwatch - rds alarm based on CPU threshold showing "Insufficient data"

Hi All, I am trying to configure rds alarm based on CPU threshold in cloudwatch. However, it is showing as “Insufficient data” since few days. Not sure if I missed any configuration, could anyone let me know what could be the issue?

  alarm_name          = "dev_oralce_integration_cpu_warn"
  comparison_operator = "GreaterThanOrEqualToThreshold"
  evaluation_periods  = "2"
  metric_name         = "CPUUtilization"
  namespace           = "AWS/RDS"
  period              = "300"
  statistic           = "Maximum"
  threshold           = "80"

  dimensions = {
    DBClusterIdentifier = "dev_serv-oracle-database"
  }

  alarm_description = "rds database cpu util is on warning"
  actions_enabled   = "true"
  alarm_actions     = [aws_sns_topic.dev_alerts.arn]
}```

Can you see this metric for the dev_serv-oracle-database dimension in Metric Explorer

Agreed, the other parameters all look correctly spelled (though the alarm name looks like it has a typo)

treat_missing_data - (Optional) Sets how this alarm is to handle missing data points. The following values are supported: missing, ignore, breaching and notBreaching. Defaults to missing.

I think you want it as:

Treat missing data as good (not breaching threshold)```

Which is notBreaching

It will only not be insufficient when in an alarm state.

I don’t think that’s accurate.

https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html

In my experience, insufficient means you’re pointing an alarm at a metric with no data.

But If I create alarm from console for same metric, it works fine.

Properties:
    AlarmName: Test_CPU_Int_DB
    ActionsEnabled: true
    OKActions: []
    AlarmActions:
        - arn:aws:sns:us-west-1:121212121212:devserv-database-alerts
    InsufficientDataActions: []
    MetricName: CPUUtilization
    Namespace: AWS/RDS
    Statistic: Maximum
    Dimensions:
        - Name: DBInstanceIdentifier
          Value: dev_serv-oracle-database
    Period: 60
    EvaluationPeriods: 1
    DatapointsToAlarm: 1
    Threshold: 90
    ComparisonOperator: GreaterThanThreshold
    TreatMissingData: missing```

So it does have the data

yes I can see the metric and I tried from console, which works fine.

DBClusterIdentifier VS DBInstanceIdentifier

Not sure the difference , but I used "DBClusterIdentifier for my cloudformation dashboard and it worked.

But that make sense to try with “DBInstanceIdentifier” and see.

DBClusterIdentifier The identifier of the DB cluster that the instance will belong to.
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbinstanceidentifier

I think alarm doesn’t like cluster name and it need instance name instead.

Hi All, thanks for all your help. It worked perfectly after using DBInstanceIdentifier.

thanks for pointing out the error.