cloudfront_distribution_pricing_classcw_log_group_without_retentiondynamodb_stale_dataebs_volumes_not_using_gp3ec2_application_lb_unusedec2_classic_lb_unusedec2_gateway_lb_unusedec2_network_lb_unusedec2_reserved_instance_lease_expiration_daysecs_cluster_low_utilizationecs_service_without_autoscalingelasticache_long_running_clusteremr_cluster_instance_prev_genemr_cluster_is_idle_30_minutesgp2_ebs_volumeshigh_iops_volumesinactive_ebs_volumesio1_ebs_volumeslambda_function_excessive_timeoutlambda_function_high_error_ratelarge_ebs_volumeslarge_ec2_instanceslong_running_instanceslow_connections_rds_metricslow_iops_volumeslow_usage_ebs_volumeslow_usage_rds_metricslow_utilization_ec2_instancemonthly_service_cost_changesmultiple_cloudtrail_trailsmultiple_regional_trailsold_ebs_snapshotsold_rds_db_instancesprev_gen_rds_instancesredshift_cluster_low_utilizationredshift_cluster_max_ageredshift_cluster_schedule_pause_resume_enableds3_bucket_without_lifecyclestale_cw_log_streamunattached_ebs_volumesunattached_eipsvpc_nat_gateway_unused
Query: emr_cluster_is_idle_30_minutes
Usage
steampipe query aws_thrifty.query.emr_cluster_is_idle_30_minutes
Plugins & Tables
SQL
with cluster_metrics as ( select id, maximum, date(timestamp) as timestamp from aws_emr_cluster_metric_is_idle where timestamp >= current_timestamp - interval '40 minutes'), emr_cluster_isidle as ( select id, count(maximum) as count, sum(maximum)/count(maximum) as avagsum from cluster_metrics group by id, timestamp)select i.id as resource, case when u.id is null then 'error' when avagsum = 1 and count >= 7 then 'alarm' else 'ok' end as status, case when u.id is null then 'CloudWatch metrics not available for ' || i.title || '.' else i.title || ' is idle from last ' || (count*5 - 5) || ' minutes.' end as reason, i.region, i.account_idfrom aws_emr_cluster as i left join emr_cluster_isidle as u on u.id = i.id;
Controls
The query is being used by the following controls: