Skip to content

Commit

Permalink
Merge pull request #19 from Samseppiol/master
Browse files Browse the repository at this point in the history
Add performance insights
  • Loading branch information
Guslington committed Aug 10, 2020
2 parents d1d0a6c + 9c8d1c4 commit 0367911
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 0 deletions.
3 changes: 3 additions & 0 deletions aurora-mysql.cfhighlander.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,8 @@
ComponentParam 'KmsKeyId' if defined? kms_key_id
ComponentParam 'VPCId', type: 'AWS::EC2::VPC::Id'
ComponentParam 'SubnetIds', type: 'CommaDelimitedList'

ComponentParam 'EnablePerformanceInsights', defined?(performance_insights) ? performance_insights : false
ComponentParam 'PerformanceInsightsRetentionPeriod', defined?(performance_insights) && defined?(insights_retention) ? insights_retention.to_i : 7
end
end
9 changes: 9 additions & 0 deletions aurora-mysql.cfndsl.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

Condition("UseUsernameAndPassword", FnEquals(Ref(:SnapshotID), ''))
Condition("UseSnapshotID", FnNot(FnEquals(Ref(:SnapshotID), '')))
Condition("EnablePerformanceInsights", FnEquals(Ref(:EnablePerformanceInsights), 'true'))


tags = []
Expand Down Expand Up @@ -68,10 +69,14 @@
kms = external_parameters.fetch(:kms_key_id, false)
instance_username = secrets_manager ? FnJoin('', [ '{{resolve:secretsmanager:', Ref(:SecretCredentials), ':SecretString:username}}' ]) : FnJoin('', [ '{{resolve:ssm:', external_parameters[:master_login]['username_ssm_param'], ':1}}' ])
instance_password = secrets_manager ? FnJoin('', [ '{{resolve:secretsmanager:', Ref(:SecretCredentials), ':SecretString:password}}' ]) : FnJoin('', [ '{{resolve:ssm-secure:', external_parameters[:master_login]['password_ssm_param'], ':1}}' ])
engine_version = external_parameters.fetch(:engine_version, nil)
maintenance_window = external_parameters.fetch(:maintenance_window, nil)

RDS_DBCluster(:DBCluster) {
Engine external_parameters[:engine]
EngineMode external_parameters[:engine_mode]
EngineVersion engine_version unless engine_version.nil?
PreferredMaintenanceWindow maintenance_window unless maintenance_window.nil?
if external_parameters[:engine_mode] == 'serverless'
ScalingConfiguration({
AutoPause: Ref('AutoPause'),
Expand Down Expand Up @@ -108,6 +113,8 @@
Engine external_parameters[:engine]
PubliclyAccessible 'false'
DBInstanceClass Ref(:WriterInstanceType)
EnablePerformanceInsights Ref('EnablePerformanceInsights')
PerformanceInsightsRetentionPeriod FnIf('EnablePerformanceInsights', Ref('PerformanceInsightsRetentionPeriod'), Ref('AWS::NoValue'))
Tags tags + [{ Key: 'Name', Value: FnJoin('-', [ Ref(:EnvironmentName), external_parameters[:component_name], 'writer-instance' ])}]
}

Expand All @@ -119,6 +126,8 @@
Engine external_parameters[:engine]
PubliclyAccessible 'false'
DBInstanceClass Ref(:ReaderInstanceType)
EnablePerformanceInsights Ref('EnablePerformanceInsights')
PerformanceInsightsRetentionPeriod FnIf('EnablePerformanceInsights', Ref('PerformanceInsightsRetentionPeriod'), Ref('AWS::NoValue'))
Tags tags + [{ Key: 'Name', Value: FnJoin('-', [ Ref(:EnvironmentName), external_parameters[:component_name], 'reader-instance' ])}]
}

Expand Down
9 changes: 9 additions & 0 deletions tests/performance_insights.test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
test_metadata:
type: config
name: performance insights
description: Enables performance insights via top level param or config value

performance_insights: true
insights_retention: 31
maintenance_window: Tue:03:00-Tue:03:30
engine_version: 5.7.mysql_aurora.2.03.2

0 comments on commit 0367911

Please sign in to comment.