Custom Thresholds

Adjust detection sensitivity for each resource type to match your environment's operational patterns.

Overview

Thresholds control when StackSage flags a resource as idle, oversized, or wasteful. All thresholds are optional — StackSage ships with sensible defaults that work for most AWS environments.

EBS Volumes

thresholds:
  ebs:
    unattached_days: 7            # Default: 7 — flag volumes unattached ≥N days
    performance_utilization: 0.20 # Default: 0.20 — flag volumes at <20% of provisioned IOPS

NAT Gateways

thresholds:
  nat_gateway:
    idle_threshold_gb_per_day: 1.0  # Default: 1.0 — flag gateways processing <1 GB/day

Lambda Functions

thresholds:
  lambda:
    low_invocation_threshold: 10  # Default: 10 — flag functions with <10 invocations/day

RDS Instances

thresholds:
  rds:
    low_connection_count: 10  # Default: 10 — flag instances with <10 avg connections

Load Balancers

thresholds:
  elb:
    idle_request_threshold_per_day: 10.0  # Default: 10.0 — flag ELBs with <10 requests/day
    min_days_old: 14                      # Only check load balancers >14 days old

  lb:
    min_days_old: 7                       # Default: 7

Severity Thresholds

Control how findings are bucketed into severity levels:

thresholds:
  severity:
    high_cost_threshold: 100    # Findings ≥$100/mo → high severity
    medium_cost_threshold: 25   # Findings ≥$25/mo → medium severity
                                # Below $25/mo → low severity

Progressive tuning

Start conservative and tighten thresholds as you address findings — reducing noise in early runs and increasing signal over time:

# Week 1: Focus on high-impact items only
reporting:
  min_savings_usd: 50
  severity_filter: [critical, high]

# Week 4: Lower threshold as environment improves
reporting:
  min_savings_usd: 10
  severity_filter: [critical, high, medium]

# Month 2: Full audit
reporting:
  min_savings_usd: 0

Related topics