resource "aws_cloudwatch_log_group" "trail" {
name = "wsc2024-gvn-LG"
tags = {
Name = "wsc2024-gvn-LG"
}
}
resource "aws_cloudwatch_log_subscription_filter" "filter" {
name = "gvn-filter"
log_group_name = aws_cloudwatch_log_group.trail.name
filter_pattern = "{ $.eventName = \\"AttachRolePolicy\\" }"
destination_arn = aws_lambda_function.lambda.arn
}
resource "aws_cloudwatch_log_metric_filter" "trail-metrics" {
log_group_name = aws_cloudwatch_log_group.lambda_log_group.name
name = "gvn-mt-fileter"
pattern = "%good%"
metric_transformation {
name = "gvn"
namespace = "gvn"
value = "1"
}
}
resource "aws_cloudwatch_metric_alarm" "metric-alarms" {
alarm_name = "wsc2024-gvn-alarm"
metric_name = aws_cloudwatch_log_metric_filter.trail-metrics.metric_transformation[0].name
namespace = aws_cloudwatch_log_metric_filter.trail-metrics.metric_transformation[0].namespace
comparison_operator = "GreaterThanOrEqualToThreshold"
evaluation_periods = "1"
period = "30"
statistic = "Minimum"
threshold = "0.9"
}