turbot/alicloud_thrifty
Loading controls...

Control: RDS DB instances with a low number connections per day should be reviewed

Description

These databases have had very little usage in the last 30 days and should be shut down when not in use.

Usage

Run the control in your terminal:

powerpipe control run alicloud_thrifty.control.rds_db_instance_low_connection_count

Snapshot and share results via Turbot Pipes:

powerpipe login
powerpipe control run alicloud_thrifty.control.rds_db_instance_low_connection_count --share

Steampipe Tables

Params

ArgsNameDefaultDescriptionVariable
$1rds_db_instance_avg_connections
2
The minimum number of average connections per day required for DB instances to be considered in-use.

SQL

with rds_db_usage as (
select
db_instance_id,
round(sum(maximum) / count(maximum)) as avg_max,
count(maximum) as days
from
alicloud_rds_instance_metric_connections_daily
where
date_part('day', now() - timestamp) <= 30
group by
db_instance_id
)
select
arn as resource,
case
when avg_max is null then 'error'
when avg_max = 0 then 'alarm'
when avg_max < $1 then 'info'
else 'ok'
end as status,
case
when avg_max is null then 'Cloud monitor metrics not available for ' || title || '.'
when avg_max = 0 then title || ' has not been connected to in the last ' || days || ' days.'
else title || ' is averaging ' || avg_max || ' max connections/day in the last ' || days || ' days.'
end as reason,
account_id,
region
from
alicloud_rds_instance as i
left join rds_db_usage as u on u.db_instance_id = i.db_instance_id;

Tags