Skip to content

Conversation

@akuzminsky
Copy link
Member

Summary

  • Fix environment dimension not appearing in CloudWatch metrics
  • Add InstanceId and AutoScalingGroupName dimensions to all metrics

Problem

The global append_dimensions in CloudWatch agent config only supports these AWS metadata variables:

  • ${aws:InstanceId}
  • ${aws:InstanceType}
  • ${aws:ImageId}
  • ${aws:AutoScalingGroupName}

Any other key-value pairs are silently ignored. Our custom environment dimension was not appearing in metrics.

Solution

  • Add append_dimensions with environment to each metric type individually (cpu, mem, disk, diskio, netstat, processes, swap, procstat)
  • Use global append_dimensions for the supported AWS variables (InstanceId, AutoScalingGroupName)

Result

All metrics will now have these dimensions:

  • InstanceId - EC2 instance ID
  • AutoScalingGroupName - ASG name (if applicable)
  • environment - Puppet environment (development/sandbox/production)

Test plan

  • Deploy to development OpenVPN or Jumphost
  • Verify metrics in CloudWatch have environment dimension
  • Verify metrics have InstanceId dimension

Global append_dimensions only supports AWS metadata variables
(InstanceId, InstanceType, ImageId, AutoScalingGroupName).
Custom dimensions like 'environment' were being silently ignored.

Changes:
- Move 'environment' dimension to each metric type individually
- Add InstanceId and AutoScalingGroupName to global append_dimensions
- Document the limitation in template comments
@akuzminsky akuzminsky merged commit f46df70 into main Dec 24, 2025
2 checks passed
@akuzminsky akuzminsky deleted the fix/cloudwatch-append-dimensions branch December 24, 2025 00:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants