Search code examples
amazon-web-servicesamazon-cognitoamazon-cloudwatchcloudwatch-alarms

Differences between AWS CloudWatch alarms created by Console vs. CLI


I Have created simple AWS cloudwatch alarm with console. It is triggered by metric "Cognito-By UserPoolAndUserPoolClient-SignInSuccesses". It works as supposed and sends an email via SNS Topic. I tried to create same alarm with CLI, but it doesn't work. Alarm doesn't get triggered. I compared in console what is difference between those two alarms. When creating alarm with console in metric selection I see metric with information "UserPool" and "UserPoolClient". When using CLI command there isn't parameters to set those two. How could I configure new alarm with CLI so that it is identical to one created in console?

CLI command:

aws cloudwatch put-metric-alarm --alarm-name NewSignupAlarm --alarm-description "New Signup have been done." --alarm-actions arn:aws:sns:eu-west-3:681278469643:NewTestTopic --metric-name SignUpSuccesses --namespace AWS/Cognito --statistic Sum --period 300 --unit Count --evaluation-periods 1 --threshold 0 --comparison-operator GreaterThanThreshold --profile user3 These are missing when created with CLI


Solution

  • These values are dimensions on the metric. You can specify them with the --dimensions parameter, like this:

    --dimensions Name=UserPool,Value=eu-west-3_... Name=UserPoolClient,Value=117...
    

    Make sure the values are exact, I used ... just to illustrate the usage.

    See here for more info on all different parameters that you may need to set if you want the alarm be the same as the one created in the console: https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html