private createMetricAlarm()

in infra/ecs-service/construct/ecs-monitor-const.ts [93:113]


    private createMetricAlarm(baseName: string, metric: cloudwatch.Metric): cloudwatch.Alarm {
        const alarmTopic = new sns.Topic(this, `${baseName}-Alarm-Topic`, {
            displayName: `${this.props.stackName}-${baseName}-Alarm-Topic`,
            topicName: `${this.props.stackName}-${baseName}-Alarm-Topic`
        });

        const emailList: string[] = this.props.subscriptionEmails;
        emailList.forEach(email => alarmTopic.addSubscription(new subscriptions.EmailSubscription(email)));

        const period = 3;
        const alarm = metric.createAlarm(this, 'RequestCountAlarm', {
            alarmName: `${this.props.stackName}-${baseName}-Alarm`,
            threshold: this.props.alarmThreshold,
            evaluationPeriods: period,
            actionsEnabled: true,
            alarmDescription: `This alarm occurs when request-count is over ${this.props.alarmThreshold} for ${period} minutes.`
        })
        alarm.addAlarmAction(new cw_actions.SnsAction(alarmTopic));

        return alarm;
    }