I am trying to provision in terraform a cloudwatch alarm to trigger on a keyword string printed from a lambda. I can confirm the lambda runs and prints the message for testing purposes. I have confirmed via terminal commands that the cloudwatch alarm exists, but in an insufficient data state. the lambda log group name is "/aws/lambda/error-test-lambda", and I confirmed that test messages are printing successfully.
resource "aws_cloudwatch_metric_alarm" "error-we-care-about-alarm" {
alarm_name = "error-we-care-about"
metric_name = aws_cloudwatch_log_metric_filter.error-we-care-about-metric-filter.name
threshold = 0
statistic = "Sum"
comparison_operator = "GreaterThanThreshold"
datapoints_to_alarm = "1"
evaluation_periods = "1"
period = 60
namespace = "IncomingLogEvents"
actions_enabled = "true"
alarm_description = "This metric monitors API call errors"
}
resource "aws_cloudwatch_log_group" "lamba_test_cloudwatch_logs"{
name = "/aws/lambda/local-error-test"
}
resource "aws_cloudwatch_log_metric_filter" "error-we-care-about-metric-filter"{
name = "MyErrorFilter-we-care-about"
log_group_name = aws_cloudwatch_log_group.lamba_test_cloudwatch_logs.name
pattern = "HIPPOPOTAMUS"
metric_transformation {
# increment threshold of aws_cloudwatch_metric_alarm
name = "errors-found-alarm"
namespace = "mycloudwatchalarmtest"
value = 1
}
}