我有我的 rds 集群和一个 cloudwatch 警报,如下面的代码所示。我想做的是应用警报中的阈值来匹配数据库集群实例的最大数据库连接级别的 75% 值。
由于实例类型和最大数据库连接数之间存在相关性,因此我尝试了多种方法来访问数据库实例类型,但都不起作用。有线索吗?
const TestCluster = new rds.DatabaseCluster(this, 'TestDbCluster', {
engine: rds.DatabaseClusterEngine.auroraMysql({version: rds.AuroraMysqlEngineVersion.VER_2_09_2}),
instances: 1,
instanceProps: {
instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MEDIUM),
vpcSubnets: {
subnetType: ec2.SubnetType.PRIVATE_ISOLATED
},
vpc: vpc,
},
clusterIdentifier: 'TestDbCluster',
})
const ConnectionsMetric = TestCluster.metricDatabaseConnections()
const dbConnectionsAlarm = ConnectionsMetric.createAlarm(this, 'TestAlarm', {
alarmName: DB-DbConnections-Alarm,
threshold: ???,
evaluationPeriods: 1
})
您可以首先将
instanceType
声明为常量,然后从那里访问大小。
const instanceType = ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MEDIUM)
const TestCluster = new rds.DatabaseCluster(this, 'TestDbCluster', {
engine: rds.DatabaseClusterEngine.auroraMysql({version: rds.AuroraMysqlEngineVersion.VER_2_09_2}),
instances: 1,
instanceProps: {
instanceType: instanceType,
vpcSubnets: {
subnetType: ec2.SubnetType.PRIVATE_ISOLATED
},
vpc: vpc,
},
clusterIdentifier: 'TestDbCluster',
})
// Do your logic here
instanceType.toString() // will return 't3.medium'
const ConnectionsMetric = TestCluster.metricDatabaseConnections()
const dbConnectionsAlarm = ConnectionsMetric.createAlarm(this, 'TestAlarm', {
alarmName: DB-DbConnections-Alarm,
threshold: ???,
evaluationPeriods: 1
})