Difference between revisions of "Terraform resource: aws cloudwatch metric alarm"
Jump to navigation
Jump to search
Line 3: | Line 3: | ||
== Examples == | == Examples == | ||
− | + | ||
− | resource "aws_cloudwatch_metric_alarm" "db_cpu_utilization_too_high" { | + | resource "aws_cloudwatch_metric_alarm" "db_cpu_utilization_too_high" { |
alarm_name = format("%s-%s", lower("${var.rds_name}"), "db-highCPUUtilization") | alarm_name = format("%s-%s", lower("${var.rds_name}"), "db-highCPUUtilization") | ||
comparison_operator = "GreaterThanThreshold" | comparison_operator = "GreaterThanThreshold" | ||
evaluation_periods = "5" | evaluation_periods = "5" | ||
metric_name = "CPUUtilization" | metric_name = "CPUUtilization" | ||
− | namespace = "AWS/RDS" | + | namespace = "[[AWS/RDS]]" |
period = "120" | period = "120" | ||
statistic = "Average" | statistic = "Average" | ||
Line 18: | Line 18: | ||
DBInstanceIdentifier = aws_db_instance.rds_instance.id | DBInstanceIdentifier = aws_db_instance.rds_instance.id | ||
} | } | ||
− | } | + | } |
+ | <pre> | ||
resource "aws_cloudwatch_metric_alarm" "db_disk_queue_depth_too_high" { | resource "aws_cloudwatch_metric_alarm" "db_disk_queue_depth_too_high" { | ||
alarm_name = format("%s-%s", lower("${var.rds_name}"), "db-highDiskQueueDepth") | alarm_name = format("%s-%s", lower("${var.rds_name}"), "db-highDiskQueueDepth") | ||
Line 68: | Line 69: | ||
} | } | ||
</pre> | </pre> | ||
− | |||
− | |||
== ChatGPT examples (01/2023) == | == ChatGPT examples (01/2023) == |
Revision as of 08:52, 8 February 2023
Examples
resource "aws_cloudwatch_metric_alarm" "db_cpu_utilization_too_high" { alarm_name = format("%s-%s", lower("${var.rds_name}"), "db-highCPUUtilization") comparison_operator = "GreaterThanThreshold" evaluation_periods = "5" metric_name = "CPUUtilization" namespace = "AWS/RDS" period = "120" statistic = "Average" threshold = "80" alarm_description = "Average database CPU utilization is too high."
dimensions = { DBInstanceIdentifier = aws_db_instance.rds_instance.id } }
resource "aws_cloudwatch_metric_alarm" "db_disk_queue_depth_too_high" { alarm_name = format("%s-%s", lower("${var.rds_name}"), "db-highDiskQueueDepth") comparison_operator = "GreaterThanThreshold" evaluation_periods = "2" metric_name = "DiskQueueDepth" namespace = "AWS/RDS" period = "120" statistic = "Average" threshold = "10" alarm_description = "Average database disk queue depth is too high, performance may be negatively impacted." dimensions = { DBInstanceIdentifier = aws_db_instance.rds_instance.id } } resource "aws_cloudwatch_metric_alarm" "db_disk_free_storage_space_too_low" { alarm_name = format("%s-%s", lower("${var.rds_name}"), "db-lowFreeStorageSpace") comparison_operator = "LessThanThreshold" evaluation_periods = "2" metric_name = "FreeStorageSpace" namespace = "AWS/RDS" period = "120" statistic = "Average" threshold = "10" alarm_description = "Average database free storage space is too low and may fill up soon." dimensions = { DBInstanceIdentifier = aws_db_instance.rds_instance.id } } resource "aws_cloudwatch_metric_alarm" "db_memory_freeable_too_low" { alarm_name = format("%s-%s", lower("${var.rds_name}"), "db-lowFreeableMemory") comparison_operator = "LessThanThreshold" evaluation_periods = "2" metric_name = "FreeableMemory" namespace = "AWS/RDS" period = "120" statistic = "Average" threshold = "10" alarm_description = "Average database freeable memory is too low, performance may be negatively impacted." dimensions = { DBInstanceIdentifier = aws_db_instance.rds_instance.id } }
ChatGPT examples (01/2023)
resource "aws_cloudwatch_metric_alarm" "elb_5xx_error_rate" { alarm_name = "elb_5xx_error_rate" comparison_operator = "GreaterThanThreshold" evaluation_periods = "5" metric_name = "HTTPCode_Backend_5XX" namespace = "AWS/ApplicationELB" period = "60" statistic = "SampleCount" threshold = "1" alarm_description = "This alarm will notify when the 5XX error rate is greater than 1% for 5 consecutive minutes" alarm_actions = [aws_sns_topic.example.arn] dimensions = { LoadBalancer = aws_elbv2_load_balancer.example.name } }
resource "aws_cloudwatch_metric_alarm" "elb_response_time" { alarm_name = "elb_response_time" comparison_operator = "GreaterThanThreshold" evaluation_periods = "5" metric_name = "TargetResponseTime" namespace = "AWS/ApplicationELB" period = "60" statistic = "Average" threshold = "2" alarm_description = "This alarm will notify when the average response time is greater than 2 seconds for 5 consecutive data points" alarm_actions = [aws_sns_topic.example.arn] dimensions = { LoadBalancer = aws_elbv2_load_balancer.example.name } }
resource "aws_cloudwatch_metric_alarm" "elb_response_time" { alarm_name = "elb_response_time" comparison_operator = "GreaterThanThreshold" evaluation_periods = "5" metric_name = "TargetResponseTime" namespace = "AWS/ApplicationELB" period = "60" statistic = "Maximum" threshold = "1" alarm_description = "This alarm will notify when the maximum response time is greater than 1 second for 5 consecutive data points" alarm_actions = [aws_sns_topic.example.arn] dimensions = { LoadBalancer = aws_elbv2_load_balancer.example.name } }
resource "aws_cloudwatch_metric_alarm" "elb_response_time_90th_percentile" { alarm_name = "elb_response_time_90th_percentile" comparison_operator = "GreaterThanThreshold" evaluation_periods = "5" metric_name = "TargetResponseTime" namespace = "AWS/ApplicationELB" period = "60" statistic = "p90" threshold = "1" alarm_description = "This alarm will notify when the 90th percentile of the response time is greater than 1 second for 5 consecutive data points" alarm_actions = [aws_sns_topic.example.arn] dimensions = { LoadBalancer = aws_elbv2_load_balancer.example.name } }
resource "aws_sns_topic" "example" { name = "example-topic" }
Related
See also
Advertising: