INNER CODE UNIT · Go
updateUpscaleAlarm
brexhq/substation · cmd/aws/lambda/autoscale/main.go:462
func updateUpscaleAlarm(ctx context.Context, stream, topic string, threshold float64, metrics []ctypes.MetricDataQuery) error {
if _, err := cloudwatchC.PutMetricAlarm(ctx, &cloudwatch.PutMetricAlarmInput{
AlarmName: aws.String(stream + "_upscale"),
AlarmDescription: aws.String(stream),
ActionsEnabled: aws.Bool(true),
AlarmActions: []string{topic},
EvaluationPeriods: aws.Int32(kinesisUpscaleDatapoints),
DatapointsToAlarm: aws.Int32(kinesisUpscaleDatapoints),
Threshold: aws.Float64(threshold),
ComparisonOperator: ctypes.ComparisonOperatorGreaterThanOrEqualToThreshold,
TreatMissingData: aws.String("ignore"),
Metrics: metrics,
}); err != nil {
return err
}
if _, err := cloudwatchC.SetAlarmState(ctx, &cloudwatch.SetAlarmStateInput{
AlarmName: aws.String(stream + "_upscale"),