Terraform 应用失败 - 创建指标警报失败。不支持期间 (10)

Posted

技术标签:

【中文标题】Terraform 应用失败 - 创建指标警报失败。不支持期间 (10)【英文标题】:Terraform Apply Failure - Creating metric alarm failed. Period (10) not supported 【发布时间】:2021-05-09 00:43:34 【问题描述】:

我正在尝试在 SQS 显示 50 多条消息时创建警报。不幸的是,我从 terraform apply 收到以下错误。

Error: Creating metric alarm failed: ValidationError: Period (10) not supported

我在 terraform.io 中寻找值限制 => https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_metric_alarm

以及 aws 文档 -> https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html

我的地形如下

resource "aws_cloudwatch_metric_alarm" "aggregator-threshold-ceiling-alarm" 
  count               = var.tagging_environment == "int" ? 1 : 0
  alarm_name          = "aggregator-queue-depth-ceiling-alarm"
  comparison_operator = "GreaterThanOrEqualToThreshold"
  evaluation_periods  = "1"
  metric_name         = "ApproximateNumberOfMessagesVisible"
  namespace           = "AWS/SQS"
  period              = "10"
  statistic           = "Maximum"
  threshold           = "50"
  treat_missing_data  = "notBreaching"

  dimensions = 
    QueueName = "$module.sqs_client-comm-aggregator.main-queue-name"
  

  alarm_description = "This metric monitors queue depth and scales up or down accordingly."
  alarm_actions     = ["$module.sns_cx-clientcomm-load-indicator-lambda-aggregator.topic_arn"]

【问题讨论】:

【参考方案1】:

我的猜测是 您的 Amazon SQS 队列的 CloudWatch 指标会以一分钟的时间间隔自动收集并推送到 CloudWatch。 https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-monitoring-using-cloudwatch.html

对于时间段:只有您定义的存储分辨率为 1 秒的自定义指标支持亚分钟时间段。 https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic

尝试将期间设置为 60。

【讨论】:

以上是关于Terraform 应用失败 - 创建指标警报失败。不支持期间 (10)的主要内容,如果未能解决你的问题,请参考以下文章

Terraform:Cloudwatch Canary Synthetics,如何创建指标警报

Azure Functions“失败”指标的 Azure 警报正在触发,没有明显的故障

使用 Terraform 的 CloudWatch 指标警报

在 terraform 失败的不同 vpc 中创建时出现 rds 副本错误

使用 CLI 在脚本中为指标“StatusCheckFailed”创建警报

使用 azure ARM 模板配置逻辑应用失败警报