CloudBurn Logo
CloudBurnHome
  • Blog
  • Docs
  • Tools
  • Features
  • Roadmap
  • Changelog
Join the CloudBurn Discord community
1.8k
Join the CloudBurn Discord community1.8k
  • Home
  • Blog
  • Docs
  • Tools
  • Features
  • Roadmap
  • Changelog
Navigation
    • Overview
    • Understanding Rules
      • CloudFront
      • CloudTrail
      • CloudWatch
      • AWS Config
      • Cost Explorer
      • Cost Guardrails
      • Cost Optimization Hub
      • DynamoDB
      • EBS
      • EC2
      • ECR
      • ECS
      • EKS
      • ElastiCache
      • ELB
      • EMR
      • KMS
      • Lambda
      • RDS
      • Redshift
      • Route 53
      • S3
      • SageMaker
      • Secrets Manager
      • Tagging
    • Overview
    • Understanding Rules
      • CloudFront
      • CloudTrail
      • CloudWatch
      • AWS Config
      • Cost Explorer
      • Cost Guardrails
      • Cost Optimization Hub
      • DynamoDB
      • EBS
      • EC2
      • ECR
      • ECS
      • EKS
      • ElastiCache
      • ELB
      • EMR
      • KMS
      • Lambda
      • RDS
      • Redshift
      • Route 53
      • S3
      • SageMaker
      • Secrets Manager
      • Tagging
Loading documentation page
CloudBurn Logo
CloudBurn

AWS cost intelligence platform that automatically identifies waste, optimizes resources, and provides actionable recommendations to reduce cloud spend.

Product

  • Features
  • Roadmap
  • Changelog
  • About
  • Blog
  • Newsletter
  • Docs
  • Contact

Free Tools

  • Lambda Cost Calculator
  • EC2 Pricing Calculator
  • S3 Pricing Calculator
  • EBS Pricing Calculator
  • Fargate Pricing Calculator
  • RDS Pricing Calculator
  • Aurora Cost Calculator
  • All AWS pricing calculators →

Newsletter

Subscribe for CloudBurn product updates, changelogs, and actionable AWS cost optimization tips delivered to your inbox.

Newsletter signup form loading.
Enter your email…
Subscribe
---- subscribers
OR SIGN UP WITH
GGH

By signing up you agree to our privacy policy.

CloudBurn © 2026 | Terms & Privacy

Built with ❤️ by Towards the Cloud

CloudBurn Rules

CloudWatch Rules

CloudBurn cost optimization rules for AWS CloudWatch.

These rules find CloudWatch log groups that accumulate cost without being actively used or bounded by a retention policy.

Rule IDScan TypeSeverityName
CLDBRN-AWS-CLOUDWATCH-1Discovery and IaCLowCloudWatch Log Group Missing Retention
CLDBRN-AWS-CLOUDWATCH-2DiscoveryLowCloudWatch Log Group Inactive

CLDBRN-AWS-CLOUDWATCH-1

CloudWatch Log Group Missing Retention

Scan type: Discovery and IaC

Severity: Low

What it checks

Flags CloudWatch log groups that have no retention policy set. Without a retention period, log data is stored indefinitely and you are billed for all accumulated storage.

Log groups in the DELIVERY delivery class are excluded because they are managed by AWS and cannot have retention configured by users.

Why it matters

CloudWatch Logs storage costs $0.03 per GB per month. Log groups without retention can grow without bound, especially for high-volume services like VPC Flow Logs, API Gateway access logs, or Lambda functions. A log group running for a year without retention can accumulate hundreds of gigabytes before anyone notices.

What triggers a finding

retentionInDays is undefined AND the log group class is not DELIVERY.

How to remediate

Set a retention period on the log group. Choose a value that meets your compliance requirements — common values are 7, 14, 30, 90, or 365 days. You can set retention via the AWS Console, CLI, or your IaC tool:

aws logs put-retention-policy \
  --log-group-name /your/log-group \
  --retention-in-days 30

IaC resources checked

ProviderResource
Terraformaws_cloudwatch_log_group
CloudFormationAWS::Logs::LogGroup

CLDBRN-AWS-CLOUDWATCH-2

CloudWatch Log Group Inactive

Scan type: Discovery

Severity: Low

What it checks

Flags CloudWatch log groups whose most recent stream has no observed event history or whose latest stream event is more than 90 days old. The rule evaluates at the log group level, not individual streams.

Log groups in the DELIVERY delivery class are excluded because they are managed by AWS.

Why it matters

Inactive log groups accumulate storage costs without providing operational value. Log groups that stop receiving data become dead weight, and teams often forget they exist. Reviewing or removing stale log groups prevents unbounded storage spend.

What triggers a finding

The log group is not in the DELIVERY class AND either of the following holds for the recent stream activity recorded against it:

  • No lastEventTimestamp was observed (no stream in the log group has a recorded event)
  • The lastEventTimestamp is older than 90 days

How to remediate

Review the log group and either delete it if no longer needed, or set a retention policy to limit storage costs:

aws logs delete-log-group \
  --log-group-name /your/inactive-log-group

If the log group is still needed but inactive, set a short retention period to reclaim storage:

aws logs put-retention-policy \
  --log-group-name /your/log-group \
  --retention-in-days 7

See Also

  • CLI discover command — scan live CloudWatch resources
  • SDK Reference — run discovery programmatically
← CloudTrailAWS Config →