Skip to content

Commit 44fd966

Browse files
committed
DB logging
* This config logs queries longer than 1s, excluding the query parameters * It also enables execution plan collection in the Database Insights dashboard in AWS * Note that the parameters log_statement and log_duration are not set. ** log_statement causes all queries to be logged, regardless of the log_min_duration_statement setting ** log_duration does not take the log_min_duration_statement into account either
1 parent 4f4c032 commit 44fd966

File tree

1 file changed

+31
-1
lines changed

1 file changed

+31
-1
lines changed

terraform/app/rds.tf

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ resource "aws_rds_cluster" "core" {
5252
allow_major_version_upgrade = true
5353
preferred_backup_window = "01:00-01:30"
5454
preferred_maintenance_window = "sun:02:30-sun:03:00"
55-
db_cluster_parameter_group_name = "default.aurora-postgresql16"
55+
db_cluster_parameter_group_name = var.enable_enhanced_db_monitoring ? aws_rds_cluster_parameter_group.enhanced_monitoring[0].name : "default.aurora-postgresql16"
56+
database_insights_mode = var.enable_enhanced_db_monitoring ? "advanced" : "standard"
57+
performance_insights_enabled = var.enable_enhanced_db_monitoring
5658
monitoring_interval = var.enable_enhanced_db_monitoring ? 30 : 0
5759
monitoring_role_arn = var.enable_enhanced_db_monitoring ? aws_iam_role.enhanced_db_monitoring[0].arn : null
5860
enabled_cloudwatch_logs_exports = ["postgresql", "instance"]
@@ -90,6 +92,34 @@ resource "aws_rds_cluster_instance" "core" {
9092
monitoring_role_arn = var.enable_enhanced_db_monitoring ? aws_iam_role.enhanced_db_monitoring[0].arn : null
9193
}
9294

95+
resource "aws_rds_cluster_parameter_group" "enhanced_monitoring" {
96+
count = var.enable_enhanced_db_monitoring ? 1 : 0
97+
family = "aurora-postgresql16"
98+
name = "enhanced-monitoring-group-${var.environment}"
99+
description = "DB cluster parameter group for enhanced DB monitoring"
100+
101+
parameter {
102+
name = "aurora_compute_plan_id"
103+
value = 1 # true
104+
}
105+
parameter {
106+
name = "aurora_stat_plans.minutes_until_recapture"
107+
value = 5
108+
}
109+
parameter {
110+
name = "log_parameter_max_length"
111+
value = 0
112+
}
113+
parameter {
114+
name = "log_min_duration_statement"
115+
value = 1000
116+
}
117+
parameter {
118+
name = "log_line_prefix"
119+
value = "%m:%r:%u@%d:[%p]:%l:%e:%s:%v:%x:%c:%q%a:"
120+
}
121+
}
122+
93123
resource "aws_iam_role" "enhanced_db_monitoring" {
94124
count = var.enable_enhanced_db_monitoring ? 1 : 0
95125
name = "enhanced-db-monitoring-role-${var.environment}"

0 commit comments

Comments
 (0)