library
turbot/gcp_thrifty

Detect & correct large Compute instances

Overview

Compute instances can be quite costly to retain, it is also likely that after a certain point in time they're no longer required and should be cleaned up to prevent further costs. Large Compute instances are unusual, expensive and should be reviewed.

This query trigger detects large Compute instances and then either sends a notification or attempts to perform a predefined corrective action.

Getting Started

By default, this trigger is disabled, however it can be configured by setting the below variables

  • compute_instances_large_trigger_enabled should be set to true as the default is false.
  • compute_instances_large_trigger_schedule should be set to your desired running schedule
  • compute_instances_large_default_action should be set to your desired action (i.e. "notify" for notifications or "terminate_instance" to delete the instance).

Then starting the server:

flowpipe server

or if you've set the variables in a .fpvars file:

flowpipe server --var-file=/path/to/your.fpvars

Query

select
concat(name, ' [', zone, '/', project, ']') as title,
name as instance_name,
zone,
_ctx ->> 'connection_name' as cred,
project
from
gcp_compute_instance
where
status in ('RUNNING', 'PROVISIONING', 'STAGING', 'REPAIRING')
and machine_type_name not like any (
array [ 'custom-1-1024',
'custom-2-2048',
'custom-4-4096',
'custom-8-8192',
'custom-16-16384',
'custom-32-32768',
'custom-64-65536',
'custom-96-98304',
'custom-128-131072',
'custom-224-229376' ]
)

Schedule

15m