Skip to content

Commit b390b7f

Browse files
committed
Adding perf insights
1 parent 8a66780 commit b390b7f

File tree

9 files changed

+148
-49
lines changed

9 files changed

+148
-49
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,9 @@ The following inputs can be used as `step.with` keys
288288
| `aws_rds_db_multi_az` | Boolean| Specifies if the RDS instance is multi-AZ. Defaults to `false`. |
289289
| `aws_rds_db_maintenance_window` | String | The window to perform maintenance in. Eg: `Mon:00:00-Mon:03:00` |
290290
| `aws_rds_db_apply_immediately` | Boolean | Specifies whether any database modifications are applied immediately, or during the next maintenance window. Defaults to `false`.|
291+
| `aws_rds_db_performance_insights_enable` | Boolean | Enables performance insights for the database. Defaults to `false`. |
292+
| `aws_rds_db_performance_insights_retention` | String | KMS key ID to use for encrypting performance insights data. |
293+
| `aws_rds_db_performance_insights_kms_key_id` | String | Number of days to retain performance insights data. Defaults to `7`. |
291294
| `aws_rds_db_additional_tags` | JSON | Add additional tags to the terraform [default tags](https://www.hashicorp.com/blog/default-tags-in-the-terraform-aws-provider), any tags put here will be added to RDS provisioned resources.|
292295
<hr/>
293296
<br/>
@@ -344,6 +347,9 @@ The following inputs can be used as `step.with` keys
344347
| `aws_aurora_db_ca_cert_identifier` | String | Certificate to use with the database. Defaults to `rds-ca-ecc384-g1`. |
345348
| `aws_aurora_db_maintenance_window` | String | Maintenance window. |
346349
| `aws_aurora_db_publicly_accessible` | Boolean | Make database publicly accessible. Defaults to `false`. |
350+
| `aws_aurora_performance_insights_enable`| Boolean | Enables performance insights for the database. Defaults to false. |
351+
| `aws_aurora_performance_insights_kms_key_id`| String | KMS key ID to use for encrypting performance insights data. |
352+
| `aws_aurora_performance_insights_retention`| String | Number of days to retain performance insights data. Defaults to 7. |
347353
| `aws_aurora_additional_tags` | JSON | A JSON object of additional tags that will be included on created resources. Example: `{"key1": "value1", "key2": "value2"}`. |
348354
<hr/>
349355
<br/>

action.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,6 +471,15 @@ inputs:
471471
aws_rds_db_apply_immediately:
472472
description: 'Specifies whether any database modifications are applied immediately, or during the next maintenance window'
473473
required: false
474+
aws_rds_db_performance_insights_enable:
475+
description: 'Enables performance insights for the database. Defaults to false.'
476+
required: false
477+
aws_rds_db_performance_insights_retention:
478+
description: 'Number of days to retain performance insights data. Defaults to 7.'
479+
required: false
480+
aws_rds_db_performance_insights_kms_key_id:
481+
description: 'KMS key ID to use for encrypting performance insights data.'
482+
required: false
474483
aws_rds_db_additional_tags:
475484
description: 'A JSON object of additional tags that will be included on created resources. Example: `{"key1": "value1", "key2": "value2"}`'
476485
required: false
@@ -611,6 +620,15 @@ inputs:
611620
aws_aurora_db_maintenance_window:
612621
description: 'Maintenance window.'
613622
required: false
623+
aws_aurora_performance_insights_enable:
624+
description: 'Enables performance insights for the database. Defaults to false.'
625+
required: false
626+
aws_aurora_performance_insights_kms_key_id:
627+
description: 'KMS key ID to use for encrypting performance insights data.'
628+
required: false
629+
aws_aurora_performance_insights_retention:
630+
description: 'Number of days to retain performance insights data. Defaults to 7.'
631+
required: false
614632
aws_aurora_additional_tags:
615633
description: 'A JSON object of additional tags that will be included on created resources. Example: `{"key1": "value1", "key2": "value2"}`'
616634
required: false
@@ -1323,6 +1341,9 @@ runs:
13231341
AWS_RDS_DB_MULTI_AZ: ${{ inputs.aws_rds_db_multi_az }}
13241342
AWS_RDS_DB_MAINTENANCE_WINDOWS: ${{ inputs.aws_rds_db_maintenance_window }}
13251343
AWS_RDS_DB_APPLY_IMMEDIATELY: ${{ inputs.aws_rds_db_apply_immediately }}
1344+
AWS_RDS_DB_PERFORMANCE_INSIGHTS_ENABLE: ${{ inputs.aws_rds_db_performance_insights_enable }}
1345+
AWS_RDS_DB_PERFORMANCE_INSIGHTS_RETENTION: ${{ inputs.aws_rds_db_performance_insights_retention }}
1346+
AWS_RDS_DB_PERFORMANCE_INSIGHTS_KMS_KEY_ID: ${{ inputs.aws_rds_db_performance_insights_kms_key_id }}
13261347
AWS_RDS_DB_ADDITIONAL_TAGS: ${{ inputs.aws_rds_db_additional_tags }}
13271348

13281349
# AWS AURORA
@@ -1370,6 +1391,9 @@ runs:
13701391
AWS_AURORA_DB_APPLY_IMMEDIATELY: ${{ inputs.aws_aurora_db_apply_immediately }}
13711392
AWS_AURORA_DB_CA_CERT_IDENTIFIER: ${{ inputs.aws_aurora_db_ca_cert_identifier }}
13721393
AWS_AURORA_DB_MAINTENANCE_WINDOW: ${{ inputs.aws_aurora_db_maintenance_window }}
1394+
AWS_AURORA_PERFORMANCE_INSIGHTS_ENABLE: ${{ inputs.aws_aurora_performance_insights_enable }}
1395+
AWS_AURORA_PERFORMANCE_INSIGHTS_KMS_KEY_ID: ${{ inputs.aws_aurora_performance_insights_kms_key_id }}
1396+
AWS_AURORA_PERFORMANCE_INSIGHTS_RETENTION: ${{ inputs.aws_aurora_performance_insights_retention }}
13731397
AWS_AURORA_ADDITIONAL_TAGS: ${{ inputs.aws_aurora_additional_tags }}
13741398

13751399
# AWS DB PROXY

operations/_scripts/generate/generate_vars_terraform.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,9 @@ if [[ $(alpha_only "$AWS_RDS_DB_ENABLE") == true ]]; then
205205
aws_rds_db_multi_az=$(generate_var aws_rds_db_multi_az $AWS_RDS_DB_MULTI_AZ)
206206
aws_rds_db_maintenance_window=$(generate_var aws_rds_db_maintenance_window $AWS_RDS_DB_MAINTENANCE_WINDOWS)
207207
aws_rds_db_apply_immediately=$(generate_var aws_rds_db_apply_immediately $AWS_RDS_DB_APPLY_IMMEDIATELY)
208+
aws_rds_db_performance_insights_enable=$(generate_var aws_rds_db_performance_insights_enable $AWS_RDS_DB_PERFORMANCE_INSIGHTS_ENABLE)
209+
aws_rds_db_performance_insights_retention=$(generate_var aws_rds_db_performance_insights_retention $AWS_RDS_DB_PERFORMANCE_INSIGHTS_RETENTION)
210+
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)
208211
aws_rds_db_additional_tags=$(generate_var aws_rds_db_additional_tags $AWS_RDS_DB_ADDITIONAL_TAGS)
209212
fi
210213

@@ -254,6 +257,9 @@ if [[ $(alpha_only "$AWS_AURORA_ENABLE") == true ]]; then
254257
aws_aurora_db_apply_immediately=$(generate_var aws_aurora_db_apply_immediately $AWS_AURORA_DB_APPLY_IMMEDIATELY)
255258
aws_aurora_db_ca_cert_identifier=$(generate_var aws_aurora_db_ca_cert_identifier $AWS_AURORA_DB_CA_CERT_IDENTIFIER)
256259
aws_aurora_db_maintenance_window=$(generate_var aws_aurora_db_maintenance_window $AWS_AURORA_DB_MAINTENANCE_WINDOW)
260+
aws_aurora_performance_insights_enable=$(generate_var aws_aurora_performance_insights_enable $AWS_AURORA_PERFORMANCE_INSIGHTS_ENABLE)
261+
aws_aurora_performance_insights_kms_key_id=$(generate_var aws_aurora_performance_insights_kms_key_id $AWS_AURORA_PERFORMANCE_INSIGHTS_KMS_KEY_ID)
262+
aws_aurora_performance_insights_retention=$(generate_var aws_aurora_performance_insights_retention $AWS_AURORA_PERFORMANCE_INSIGHTS_RETENTION)
257263
aws_aurora_additional_tags=$(generate_var aws_aurora_additional_tags $AWS_AURORA_ADDITIONAL_TAGS)
258264
fi
259265

@@ -560,6 +566,9 @@ $aws_rds_db_cloudwatch_logs_exports
560566
$aws_rds_db_multi_az
561567
$aws_rds_db_maintenance_window
562568
$aws_rds_db_apply_immediately
569+
$aws_rds_db_performance_insights_enable
570+
$aws_rds_db_performance_insights_retention
571+
$aws_rds_db_performance_insights_kms_key_id
563572
$aws_rds_db_additional_tags
564573
565574
#-- AURORA --#
@@ -607,6 +616,9 @@ $aws_aurora_db_instance_class
607616
$aws_aurora_db_apply_immediately
608617
$aws_aurora_db_ca_cert_identifier
609618
$aws_aurora_db_maintenance_window
619+
$aws_aurora_performance_insights_enable
620+
$aws_aurora_performance_insights_kms_key_id
621+
$aws_aurora_performance_insights_retention
610622
$aws_aurora_additional_tags
611623
612624
#-- DB PROXY --#

operations/deployment/terraform/aws/aws_variables.tf

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -713,6 +713,24 @@ variable "aws_rds_db_apply_immediately" {
713713
default = false
714714
}
715715

716+
variable "aws_rds_db_performance_insights_enable" {
717+
type = bool
718+
description = "Specifies whether to enable Performance Insights for the DB instance."
719+
default = false
720+
}
721+
722+
variable "aws_rds_db_performance_insights_retention" {
723+
type = string
724+
description = "The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years)."
725+
default = "7"
726+
}
727+
728+
variable "aws_rds_db_performance_insights_kms_key_id" {
729+
type = string
730+
description = "The ARN for the KMS key to encrypt performance insights data."
731+
default = ""
732+
}
733+
716734
variable "aws_rds_db_additional_tags" {
717735
type = string
718736
description = "A list of strings that will be added to created resources"
@@ -989,6 +1007,24 @@ variable "aws_aurora_db_maintenance_window" {
9891007
default = ""
9901008
}
9911009

1010+
variable "aws_aurora_performance_insights_enable" {
1011+
type = bool
1012+
description = "Specifies whether to enable Performance Insights for the DB instance."
1013+
default = false
1014+
}
1015+
1016+
variable "aws_aurora_performance_insights_retention" {
1017+
type = string
1018+
description = "The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years)."
1019+
default = "7"
1020+
}
1021+
1022+
variable "aws_aurora_performance_insights_kms_key_id" {
1023+
type = string
1024+
description = "The ARN for the KMS key to encrypt performance insights data."
1025+
default = ""
1026+
}
1027+
9921028
variable "aws_aurora_additional_tags" {
9931029
type = string
9941030
description = "A list of strings that will be added to created resources"

operations/deployment/terraform/aws/bitovi_main.tf

Lines changed: 32 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -167,30 +167,33 @@ module "rds" {
167167
source = "../modules/aws/rds"
168168
count = var.aws_rds_db_enable ? 1 : 0
169169
# RDS
170-
aws_rds_db_name = var.aws_rds_db_name
171-
aws_rds_db_user = var.aws_rds_db_user
172-
aws_rds_db_identifier = var.aws_rds_db_identifier != "" ? var.aws_rds_db_identifier : lower(var.aws_resource_identifier)
173-
aws_rds_db_engine = var.aws_rds_db_engine
174-
aws_rds_db_engine_version = var.aws_rds_db_engine_version
175-
aws_rds_db_ca_cert_identifier = var.aws_rds_db_ca_cert_identifier
176-
aws_rds_db_security_group_name = var.aws_rds_db_security_group_name
177-
aws_rds_db_allowed_security_groups = var.aws_rds_db_allowed_security_groups
178-
aws_rds_db_ingress_allow_all = var.aws_rds_db_ingress_allow_all
179-
aws_rds_db_publicly_accessible = var.aws_rds_db_publicly_accessible
180-
aws_rds_db_port = var.aws_rds_db_port
181-
aws_rds_db_subnets = var.aws_rds_db_subnets
182-
aws_rds_db_allocated_storage = var.aws_rds_db_allocated_storage
183-
aws_rds_db_max_allocated_storage = var.aws_rds_db_max_allocated_storage
184-
aws_rds_db_storage_encrypted = var.aws_rds_db_storage_encrypted
185-
aws_rds_db_storage_type = var.aws_rds_db_storage_type
186-
aws_rds_db_kms_key_id = var.aws_rds_db_kms_key_id
187-
aws_rds_db_instance_class = var.aws_rds_db_instance_class
188-
aws_rds_db_final_snapshot = var.aws_rds_db_final_snapshot
189-
aws_rds_db_restore_snapshot_identifier = var.aws_rds_db_restore_snapshot_identifier
190-
aws_rds_db_cloudwatch_logs_exports = var.aws_rds_db_cloudwatch_logs_exports
191-
aws_rds_db_multi_az = var.aws_rds_db_multi_az
192-
aws_rds_db_maintenance_window = var.aws_rds_db_maintenance_window
193-
aws_rds_db_apply_immediately = var.aws_rds_db_apply_immediately
170+
aws_rds_db_name = var.aws_rds_db_name
171+
aws_rds_db_user = var.aws_rds_db_user
172+
aws_rds_db_identifier = var.aws_rds_db_identifier != "" ? var.aws_rds_db_identifier : lower(var.aws_resource_identifier)
173+
aws_rds_db_engine = var.aws_rds_db_engine
174+
aws_rds_db_engine_version = var.aws_rds_db_engine_version
175+
aws_rds_db_ca_cert_identifier = var.aws_rds_db_ca_cert_identifier
176+
aws_rds_db_security_group_name = var.aws_rds_db_security_group_name
177+
aws_rds_db_allowed_security_groups = var.aws_rds_db_allowed_security_groups
178+
aws_rds_db_ingress_allow_all = var.aws_rds_db_ingress_allow_all
179+
aws_rds_db_publicly_accessible = var.aws_rds_db_publicly_accessible
180+
aws_rds_db_port = var.aws_rds_db_port
181+
aws_rds_db_subnets = var.aws_rds_db_subnets
182+
aws_rds_db_allocated_storage = var.aws_rds_db_allocated_storage
183+
aws_rds_db_max_allocated_storage = var.aws_rds_db_max_allocated_storage
184+
aws_rds_db_storage_encrypted = var.aws_rds_db_storage_encrypted
185+
aws_rds_db_storage_type = var.aws_rds_db_storage_type
186+
aws_rds_db_kms_key_id = var.aws_rds_db_kms_key_id
187+
aws_rds_db_instance_class = var.aws_rds_db_instance_class
188+
aws_rds_db_final_snapshot = var.aws_rds_db_final_snapshot
189+
aws_rds_db_restore_snapshot_identifier = var.aws_rds_db_restore_snapshot_identifier
190+
aws_rds_db_cloudwatch_logs_exports = var.aws_rds_db_cloudwatch_logs_exports
191+
aws_rds_db_multi_az = var.aws_rds_db_multi_az
192+
aws_rds_db_maintenance_window = var.aws_rds_db_maintenance_window
193+
aws_rds_db_apply_immediately = var.aws_rds_db_apply_immediately
194+
aws_rds_db_performance_insights_enable = var.aws_rds_db_performance_insights_enable
195+
aws_rds_db_performance_insights_retention = var.aws_rds_db_performance_insights_retention
196+
aws_rds_db_performance_insights_kms_key_id = var.aws_rds_db_performance_insights_kms_key_id
194197
# Others
195198
#aws_ec2_security_group = var.aws_ec2_instance_create ? module.ec2[0].aws_security_group_ec2_sg_id : ""
196199
aws_selected_vpc_id = module.vpc.aws_selected_vpc_id
@@ -289,6 +292,11 @@ module "aurora_rds" {
289292
aws_aurora_db_apply_immediately = var.aws_aurora_db_apply_immediately
290293
aws_aurora_db_ca_cert_identifier = var.aws_aurora_db_ca_cert_identifier
291294
aws_aurora_db_maintenance_window = var.aws_aurora_db_maintenance_window
295+
# Extras
296+
aws_aurora_performance_insights_enable = var.aws_aurora_performance_insights_enable
297+
aws_aurora_performance_insights_kms_key_id = var.aws_aurora_performance_insights_kms_key_id
298+
aws_aurora_performance_insights_retention = var.aws_aurora_performance_insights_retention
299+
# Others
292300
# Incoming
293301
#aws_ec2_security_group = var.aws_ec2_instance_create ? module.ec2[0].aws_security_group_ec2_sg_id : ""
294302
aws_selected_vpc_id = module.vpc.aws_selected_vpc_id

operations/deployment/terraform/modules/aws/aurora/aws_aurora.tf

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,10 @@ resource "aws_rds_cluster" "aurora" {
9191
db_cluster_instance_class = var.aws_aurora_cluster_db_instance_class
9292
vpc_security_group_ids = [aws_security_group.aurora_security_group.id]
9393
port = var.aws_aurora_database_port
94-
94+
# Extras
95+
performance_insights_enabled = var.aws_aurora_performance_insights_enable
96+
performance_insights_retention_period = var.aws_aurora_performance_insights_retention
97+
performance_insights_kms_key_id = var.aws_aurora_performance_insights_kms_key_id
9598
dynamic "restore_to_point_in_time" {
9699
for_each = length(var.aws_aurora_restore_to_point_in_time) > 0 ? [var.aws_aurora_restore_to_point_in_time] : []
97100

operations/deployment/terraform/modules/aws/aurora/aws_aurora_vars.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ variable "aws_aurora_db_apply_immediately" {}
4646
variable "aws_aurora_db_ca_cert_identifier" {}
4747
variable "aws_aurora_db_maintenance_window" {}
4848
variable "aws_aurora_db_publicly_accessible" {}
49+
# Extras
50+
variable "aws_aurora_performance_insights_enable" {}
51+
variable "aws_aurora_performance_insights_retention" {}
52+
variable "aws_aurora_performance_insights_kms_key_id" {}
4953
# Incoming
5054
variable "aws_selected_vpc_id" {}
5155
variable "aws_subnets_vpc_subnets_ids" {}

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

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -53,30 +53,33 @@ resource "aws_db_subnet_group" "selected" {
5353
}
5454

5555
resource "aws_db_instance" "default" {
56-
identifier = var.aws_rds_db_identifier
57-
engine = var.aws_rds_db_engine
58-
engine_version = var.aws_rds_db_engine_version
59-
ca_cert_identifier = var.aws_rds_db_ca_cert_identifier
60-
db_subnet_group_name = aws_db_subnet_group.selected.name
61-
db_name = var.aws_rds_db_name != null ? var.aws_rds_db_name : null
62-
port = var.aws_rds_db_port != null ? tonumber(var.aws_rds_db_port) : null
63-
allocated_storage = tonumber(var.aws_rds_db_allocated_storage)
64-
max_allocated_storage = tonumber(var.aws_rds_db_max_allocated_storage)
65-
storage_encrypted = var.aws_rds_db_storage_encrypted
66-
storage_type = var.aws_rds_db_storage_type
67-
kms_key_id = var.aws_rds_db_kms_key_id
68-
instance_class = var.aws_rds_db_instance_class
69-
username = var.aws_rds_db_user != null ? var.aws_rds_db_user : "dbuser"
70-
password = random_password.rds.result
71-
skip_final_snapshot = var.aws_rds_db_final_snapshot != "" ? false : true
72-
final_snapshot_identifier = var.aws_rds_db_final_snapshot != "" ? var.aws_rds_db_final_snapshot : null
73-
snapshot_identifier = var.aws_rds_db_restore_snapshot_identifier
74-
publicly_accessible = var.aws_rds_db_publicly_accessible
75-
enabled_cloudwatch_logs_exports = [var.aws_rds_db_cloudwatch_logs_exports]
76-
vpc_security_group_ids = [aws_security_group.rds_db_security_group.id]
77-
multi_az = var.aws_rds_db_multi_az
78-
maintenance_window = var.aws_rds_db_maintenance_window
79-
apply_immediately = var.aws_rds_db_apply_immediately
56+
identifier = var.aws_rds_db_identifier
57+
engine = var.aws_rds_db_engine
58+
engine_version = var.aws_rds_db_engine_version
59+
ca_cert_identifier = var.aws_rds_db_ca_cert_identifier
60+
db_subnet_group_name = aws_db_subnet_group.selected.name
61+
db_name = var.aws_rds_db_name != null ? var.aws_rds_db_name : null
62+
port = var.aws_rds_db_port != null ? tonumber(var.aws_rds_db_port) : null
63+
allocated_storage = tonumber(var.aws_rds_db_allocated_storage)
64+
max_allocated_storage = tonumber(var.aws_rds_db_max_allocated_storage)
65+
storage_encrypted = var.aws_rds_db_storage_encrypted
66+
storage_type = var.aws_rds_db_storage_type
67+
kms_key_id = var.aws_rds_db_kms_key_id
68+
instance_class = var.aws_rds_db_instance_class
69+
username = var.aws_rds_db_user != null ? var.aws_rds_db_user : "dbuser"
70+
password = random_password.rds.result
71+
skip_final_snapshot = var.aws_rds_db_final_snapshot != "" ? false : true
72+
final_snapshot_identifier = var.aws_rds_db_final_snapshot != "" ? var.aws_rds_db_final_snapshot : null
73+
snapshot_identifier = var.aws_rds_db_restore_snapshot_identifier
74+
publicly_accessible = var.aws_rds_db_publicly_accessible
75+
enabled_cloudwatch_logs_exports = [var.aws_rds_db_cloudwatch_logs_exports]
76+
vpc_security_group_ids = [aws_security_group.rds_db_security_group.id]
77+
multi_az = var.aws_rds_db_multi_az
78+
maintenance_window = var.aws_rds_db_maintenance_window
79+
apply_immediately = var.aws_rds_db_apply_immediately
80+
performance_insights_enabled = var.aws_rds_db_performance_insights_enable
81+
performance_insights_retention_period = var.aws_rds_db_performance_insights_retention
82+
performance_insights_kms_key_id = var.aws_rds_db_performance_insights_kms_key_id
8083
tags = {
8184
Name = "${var.aws_resource_identifier}-rds"
8285
}

0 commit comments

Comments
 (0)