Why is the default behavior of embedded service module cloudwatch alarms "treat missing data as missing"?
We use several of the Gruntworks modules in the service catalog, including redis. This means we also use the cloudwatch alarms that come "pre-packaged" in this module. We noticed (after a brief outage during which we received no alarms) that the module is set to treat all missing data as missing, instead of breaching. We feel it makes sense for an alarm that monitors CPU usage, for instance, to treat missing data as breaching. We haven't seen any way of changing this behavior in the service catalog modules. Is there a specific logic behind this? Why do these modules default to "treat missing data as missing"? [r:terraform-aws-service-catalog](https://github.com/gruntwork-io/terraform-aws-service-catalog) --- <ins datetime="2022-08-17T16:46:37Z"> <p><a href="https://support.gruntwork.io/hc/requests/109143">Tracked in ticket #109143</a></p> </ins>
The specific logic behind this is to ensure that the alarms are set up to be "correct." That is, you want to differentiate between an alarm that is going off because the Redis node is overloaded and one where it's because the Redis node is not available. Note that if there is missing data in all data for a period, AWS will alert with an `INSUFFICIENT_DATA` alarm. With that said, if this is an opinionated approach that doesn't align with your use case, we can definitely expose a parameter to configure that. I filed https://github.com/gruntwork-io/terraform-aws-service-catalog/issues/1674 to track this work.