Does AWS RDS offer a metric for monitoring the memory utilization? I see one metric called freeable_memory which is how much available memory an instance has. I'd like to create an alert when the memory usage reaches a certain percetage of the total memory but can't seem to find a metric which supports that, similar to cpuutilization. I also found a metric called acuutilization in datadog but haven't been able to find what that metric tracks.
Take a look at enhanced monitoring. Enhanced Monitoring has a metric called Active Memory:
The amount of assigned memory, in kilobytes.
Sounds to me like something that could be useful for you. But be aware that you also get additional costs: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.overview.html#USER_Monitoring.OS.cost
Here is what I did in Terraform to create an alarm based on percentage of utilization.
resource "aws_cloudwatch_metric_alarm" "rds_memory_utilization" {
  alarm_name          = format("RDS-MemoryUtilization-%s-%s", var.env, var.identifier)
  comparison_operator = "GreaterThanOrEqualToThreshold"
  evaluation_periods  = var.memory_evaluation_periods
  threshold           = var.memory_threshold
  datapoints_to_alarm = var.memory_datapoints_to_alarm
  treat_missing_data  = "notBreaching"
  alarm_description   = format("%s-%s %s%% memory utilization", var.env, var.identifier, var.memory_threshold)
  actions_enabled     = "true"
  alarm_actions       = [data.aws_sns_topic.ops_sns.arn]
  ok_actions          = [data.aws_sns_topic.ops_sns.arn]
  metric_query {
    id    = "percent_memory_utilization"
    label = "percent_memory_utilization"
    # need to convert rds_total_memory to bytes first, get the percentage of available memory and then subtract to calculate the memory utilization
    expression  = "100 - ((m1/(${var.rds_total_memory}*1048576))*100)"
    return_data = "true"
  }
  metric_query {
    id = "m1"
    metric {
      metric_name = "FreeableMemory"
      namespace   = "AWS/RDS"
      period      = var.memory_period
      stat        = "Maximum"
      dimensions = {
        DBInstanceIdentifier = var.identifier
      }
    }
  }
  provider = aws.env
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With