Findings
Optimization checks CloudOpt runs on your cloud data.
CloudOpt runs a fixed set of checks on collected data. Failed checks appear as findings; passed checks produce no output.
Inventory checks need collect … inventory. Rightsizing and utilization checks also need collect … metrics. Pricing loads during analyze.
Provider-specific checks run when required data and capabilities are present. Skipped checks go to the report appendix with a reason.
Compute
Stopped instance with ongoing charges
Severity: medium | Requires: inventory, cost | Providers: AWS, GCP
Compute instances in stopped state that still bill for storage or other attached resources.
Terminate if the instance is done, or delete unused volumes after you confirm nothing important remains on disk.
EC2 downsize candidate
Severity: medium | Requires: metrics, pricing | Providers: AWS
EC2 instances with p95 CPU below 25% over the observation window.
Check memory and disk I/O, then resize during a maintenance window.
GCE downsize candidate
Severity: medium | Requires: metrics, pricing | Providers: GCP
Compute Engine instances with p95 CPU below 25% over the observation window.
Validate memory, disk, and licensing constraints before changing machine type. Custom machine types and shared-core instances have additional filtering.
Persistently idle EC2 instance
Severity: medium | Requires: metrics, pricing | Providers: AWS
Instances with multiple consecutive idle periods (near-zero utilization).
Confirm the workload is retired, then stop or terminate and release unused Elastic IPs.
Storage
Unattached block volume
Severity: medium | Requires: inventory | Providers: AWS, GCP
Block volumes (EBS or persistent disks) with no active attachment.
Snapshot if you need a backup, then delete the volume.
Stale volume snapshot
Severity: low | Requires: inventory | Providers: AWS, GCP
Volume snapshots older than 90 days.
Confirm retention policy, then delete snapshots you no longer need.
EBS gp2 to gp3 optimization
Severity: low | Requires: inventory, pricing | Providers: AWS
gp2 volumes where gp3 would cost less at equivalent IOPS/throughput.
Modify volume type after you confirm baseline performance needs.
GCP pd-standard to pd-balanced optimization
Severity: low | Requires: inventory, pricing | Providers: GCP
pd-standard disks where pd-balanced would cost less at equivalent performance.
Migrate attached disks after confirming IO requirements.
Database
RDS downsize candidate
Severity: medium | Requires: metrics, pricing | Providers: AWS
RDS instances with low CPU utilization relative to instance class.
Check memory and connection limits, then modify instance class in a maintenance window. Sparse metrics mark the finding investigation-only.
Cloud SQL downsize candidate
Severity: medium | Requires: metrics, pricing | Providers: GCP
Cloud SQL instances with low CPU utilization relative to tier.
Validate connections and memory, then reduce tier during maintenance. Sparse metrics mark the finding investigation-only.
Network
Low-utilization NAT gateway
Severity: low | Requires: metrics, pricing | Providers: AWS
NAT gateways with minimal outbound traffic.
Look at VPC endpoints or consolidated egress before changing topology. Often investigation-only.
Low-utilization Cloud NAT gateway
Severity: low | Requires: metrics, pricing | Providers: GCP
Cloud NAT gateways with minimal outbound traffic.
Review VPC Service Controls and Private Google Access before changing topology. Often investigation-only.
Idle GCP external IP address
Severity: low | Requires: inventory | Providers: GCP
Static external IP addresses not attached to active resources.
Release unused IPs or attach them to active resources.
Billing
Committed use discount coverage opportunity
Severity: low | Requires: cost | Providers: GCP
Eligible compute spend that could benefit from committed use discounts.
Model 1- or 3-year commitments only after stabilizing baseline usage. Marked investigation-only because commitments reduce flexibility.
Governance
Missing cost allocation tags
Severity: low | Requires: inventory | Providers: AWS, GCP
Resources with spend but missing Owner or CostCenter tags (or your org equivalents).
Apply the tags your finance team expects.
Running a subset of checks
All checks:
cloudopt analyze
One category:
cloudopt analyze --category compute,storage
Specific rule IDs:
cloudopt analyze --rules compute.ec2_downsize_candidate,storage.unattached_block_volume
Missing data
If a check lacks required signals, it lands in the appendix as not evaluated. Collect the missing data and run analyze again. Coverage scores in the report show how complete your data is.