Control: RDS DB instance having low CPU utilization should be reviewed
Description
DB instances may be oversized for their usage.
Usage
Run the control in your terminal:
powerpipe control run aws_thrifty.control.rds_db_low_utilizationSnapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run aws_thrifty.control.rds_db_low_utilization --shareSteampipe Tables
SQL
with rds_db_usage as (  select    db_instance_identifier,    round(cast(sum(maximum)/count(maximum) as numeric), 1) as avg_max,    count(maximum) days  from    aws_rds_db_instance_metric_cpu_utilization_daily  where    date_part('day', now() - timestamp) <= 30  group by    db_instance_identifier)select  arn as resource,  case    when avg_max is null then 'error'    when avg_max <= $1 then 'alarm'    when avg_max <= $2 then 'info'    else 'ok'  end as status,  case    when avg_max is null then 'CloudWatch metrics not available for ' || title || '.'    else title || ' is averaging ' || avg_max || '% max utilization over the last ' || days || ' days.'  end as reason    , region, account_idfrom  aws_rds_db_instance i  left join rds_db_usage as u on u.db_instance_identifier = i.db_instance_identifier;
Params
| Args | Name | Default | Description | Variable | 
|---|---|---|---|---|
| $1 | rds_db_instance_avg_cpu_utilization_low |  | The average CPU utilization required for DB instances to be considered infrequently used. This value should be lower than rds_db_instance_avg_cpu_utilization_high. | |
| $2 | rds_db_instance_avg_cpu_utilization_high |  | The average CPU utilization required for DB instances to be considered frequently used. This value should be higher than rds_db_instance_avg_cpu_utilization_low. |