Skip to content

Commit a14d02a

Browse files
authored
Enhanced monitoring for RDS (#101)
* Adding Enhanced monitoring * Use default ARN for monitoring if none defined
1 parent b77e366 commit a14d02a

File tree

7 files changed

+37
-0
lines changed

7 files changed

+37
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,8 @@ The following inputs can be used as `step.with` keys
291291
| `aws_rds_db_performance_insights_enable` | Boolean | Enables performance insights for the database. Defaults to `false`. |
292292
| `aws_rds_db_performance_insights_retention` | String | KMS key ID to use for encrypting performance insights data. |
293293
| `aws_rds_db_performance_insights_kms_key_id` | String | Number of days to retain performance insights data. Defaults to `7`. |
294+
| `aws_rds_db_monitoring_interval` | String | The interval, in seconds, between points when metrics are collected. Defaults to `0` (disabled). Valid values are `0,1,5,10,15,30,60`. |
295+
| `aws_rds_db_monitoring_role_arn` | String | The ARN of the IAM role that provides access to the Enhanced Monitoring metrics. If empty will use the standard `rds-monitoring-role`. |
294296
| `aws_rds_db_insights_mode` | String | The mode for Performance Insights. Could be `standard` (default) or `advanced`. |
295297
| `aws_rds_db_allow_major_version_upgrade` | Boolean | Indicates that major version upgrades are allowed. Defaults to `false`. |
296298
| `aws_rds_db_auto_minor_version_upgrade` | Boolean | Indicates that minor version upgrades are allowed. Defaults to `true`. |

action.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,12 @@ inputs:
480480
aws_rds_db_performance_insights_kms_key_id:
481481
description: 'KMS key ID to use for encrypting performance insights data.'
482482
required: false
483+
aws_rds_db_monitoring_interval:
484+
description: 'The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable, set to 0.'
485+
required: false
486+
aws_rds_db_monitoring_role_arn:
487+
description: 'The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs.'
488+
required: false
483489
aws_rds_db_insights_mode:
484490
description: 'The mode for Performance Insights.'
485491
required: false
@@ -1362,6 +1368,8 @@ runs:
13621368
AWS_RDS_DB_PERFORMANCE_INSIGHTS_ENABLE: ${{ inputs.aws_rds_db_performance_insights_enable }}
13631369
AWS_RDS_DB_PERFORMANCE_INSIGHTS_RETENTION: ${{ inputs.aws_rds_db_performance_insights_retention }}
13641370
AWS_RDS_DB_PERFORMANCE_INSIGHTS_KMS_KEY_ID: ${{ inputs.aws_rds_db_performance_insights_kms_key_id }}
1371+
AWS_RDS_DB_MONITORING_INTERVAL: ${{ inputs.aws_rds_db_monitoring_interval }}
1372+
AWS_RDS_DB_MONITORING_ROLE_ARN: ${{ inputs.aws_rds_db_monitoring_role_arn }}
13651373
AWS_RDS_DB_INSIGHTS_MODE: ${{ inputs.aws_rds_db_insights_mode }}
13661374
AWS_RDS_DB_ALLOW_MAJOR_VERSION_UPGRADE: ${{ inputs.aws_rds_db_allow_major_version_upgrade }}
13671375
AWS_RDS_DB_AUTO_MINOR_VERSION_UPGRADE: ${{ inputs.aws_rds_db_auto_minor_version_upgrade }}

operations/_scripts/generate/generate_vars_terraform.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,8 @@ if [[ $(alpha_only "$AWS_RDS_DB_ENABLE") == true ]]; then
208208
aws_rds_db_performance_insights_enable=$(generate_var aws_rds_db_performance_insights_enable $AWS_RDS_DB_PERFORMANCE_INSIGHTS_ENABLE)
209209
aws_rds_db_performance_insights_retention=$(generate_var aws_rds_db_performance_insights_retention $AWS_RDS_DB_PERFORMANCE_INSIGHTS_RETENTION)
210210
aws_rds_db_performance_insights_kms_key_id=$(generate_var aws_rds_db_performance_insights_kms_key_id $AWS_RDS_DB_PERFORMANCE_INSIGHTS_KMS_KEY_ID)
211+
aws_rds_db_monitoring_interval=$(generate_var aws_rds_db_monitoring_interval $AWS_RDS_DB_MONITORING_INTERVAL)
212+
aws_rds_db_monitoring_role_arn=$(generate_var aws_rds_db_monitoring_role_arn $AWS_RDS_DB_MONITORING_ROLE_ARN)
211213
aws_rds_db_insights_mode=$(generate_var aws_rds_db_insights_mode $AWS_RDS_DB_INSIGHTS_MODE)
212214
aws_rds_db_allow_major_version_upgrade=$(generate_var aws_rds_db_allow_major_version_upgrade $AWS_RDS_DB_ALLOW_MAJOR_VERSION_UPGRADE)
213215
aws_rds_db_auto_minor_version_upgrade=$(generate_var aws_rds_db_auto_minor_version_upgrade $AWS_RDS_DB_AUTO_MINOR_VERSION_UPGRADE)
@@ -575,6 +577,8 @@ $aws_rds_db_apply_immediately
575577
$aws_rds_db_performance_insights_enable
576578
$aws_rds_db_performance_insights_retention
577579
$aws_rds_db_performance_insights_kms_key_id
580+
$aws_rds_db_monitoring_interval
581+
$aws_rds_db_monitoring_role_arn
578582
$aws_rds_db_insights_mode
579583
$aws_rds_db_allow_major_version_upgrade
580584
$aws_rds_db_auto_minor_version_upgrade

operations/deployment/terraform/aws/aws_variables.tf

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -731,6 +731,18 @@ variable "aws_rds_db_performance_insights_kms_key_id" {
731731
default = ""
732732
}
733733

734+
variable "aws_rds_db_monitoring_interval" {
735+
type = string
736+
description = "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting specify 0."
737+
default = "0"
738+
}
739+
740+
variable "aws_rds_db_monitoring_role_arn" {
741+
type = string
742+
description = "The ARN of the IAM role that provides access to the Enhanced Monitoring metrics."
743+
default = ""
744+
}
745+
734746
variable "aws_rds_db_insights_mode" {
735747
type = string
736748
description = "The mode for Performance Insights."

operations/deployment/terraform/aws/bitovi_main.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,8 @@ module "rds" {
194194
aws_rds_db_performance_insights_enable = var.aws_rds_db_performance_insights_enable
195195
aws_rds_db_performance_insights_retention = var.aws_rds_db_performance_insights_retention
196196
aws_rds_db_performance_insights_kms_key_id = var.aws_rds_db_performance_insights_kms_key_id
197+
aws_rds_db_monitoring_interval = var.aws_rds_db_monitoring_interval
198+
aws_rds_db_monitoring_role_arn = var.aws_rds_db_monitoring_role_arn
197199
aws_rds_db_insights_mode = var.aws_rds_db_insights_mode
198200
aws_rds_db_allow_major_version_upgrade = var.aws_rds_db_allow_major_version_upgrade
199201
aws_rds_db_auto_minor_version_upgrade = var.aws_rds_db_auto_minor_version_upgrade

operations/deployment/terraform/modules/aws/rds/aws_rds.tf

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ resource "aws_db_instance" "default" {
8181
performance_insights_retention_period = var.aws_rds_db_performance_insights_enable ? var.aws_rds_db_performance_insights_retention : null
8282
performance_insights_kms_key_id = var.aws_rds_db_performance_insights_enable ? var.aws_rds_db_performance_insights_kms_key_id : null
8383
# Updgrades
84+
monitoring_interval = var.aws_rds_db_monitoring_interval
85+
monitoring_role_arn = var.aws_rds_db_monitoring_role_arn != "" ? var.aws_rds_db_monitoring_role_arn : data.aws_iam_role.monitoring[0].arn
8486
database_insights_mode = var.aws_rds_db_insights_mode
8587
allow_major_version_upgrade = var.aws_rds_db_allow_major_version_upgrade
8688
auto_minor_version_upgrade = var.aws_rds_db_auto_minor_version_upgrade
@@ -92,6 +94,11 @@ resource "aws_db_instance" "default" {
9294
}
9395
}
9496

97+
data "aws_iam_role" "monitoring" {
98+
count = var.aws_rds_db_monitoring_role_arn != "" ? 0 : 1
99+
name = "rds-monitoring-role"
100+
}
101+
95102
// Creates a secret manager secret for the databse credentials
96103
resource "aws_secretsmanager_secret" "rds_database_credentials" {
97104
name = "${var.aws_resource_identifier_supershort}-rdsdb-pub-${random_string.random_sm.result}"

operations/deployment/terraform/modules/aws/rds/aws_rds_vars.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ variable "aws_rds_db_apply_immediately" {}
2525
variable "aws_rds_db_performance_insights_enable" {}
2626
variable "aws_rds_db_performance_insights_retention" {}
2727
variable "aws_rds_db_performance_insights_kms_key_id" {}
28+
variable "aws_rds_db_monitoring_interval" {}
29+
variable "aws_rds_db_monitoring_role_arn" {}
2830
variable "aws_rds_db_insights_mode" {}
2931
variable "aws_rds_db_allow_major_version_upgrade" {}
3032
variable "aws_rds_db_auto_minor_version_upgrade" {}

0 commit comments

Comments
 (0)