【问题标题】:Terraform: Using SEARCH expressions with CloudWatch AlarmsTerraform:将 SEARCH 表达式与 CloudWatch 警报结合使用
【发布时间】:2021-01-10 16:25:33
【问题描述】:

我查看了this 的问题,但没有太大帮助,所以就在这里......

我有一堆 Lambda 函数,我想监控它们并在出现问题时触发 CloudWatch 警报。 Lambda 函数实际上以环境名称为前缀,即env-1-function-1env-1-function-2env-2-function-1 等。

这些环境是独立的,即 env1 的 cloudwatch 警报设置不应与 env2 有任何关系。所以为了实现这一点,我开始查看SEARCH 表达式。

这是我的闹钟:

resource "aws_cloudwatch_metric_alarm" "lambda_average_duration" {
  alarm_name          = "${local.env_prefix}-alarm-lambda_average_duration"
  comparison_operator = "GreaterThanOrEqualToThreshold"
  evaluation_periods  = "1"
  threshold           = "40000"
  alarm_description   = "This alarm monitors lambda average duration and triggers if the average of durations rise above 40 seconds."
  alarm_actions       = [aws_sns_topic.alarms_topic.arn]

  metric_query {
    id = "e1"
    expression = "SEARCH('{AWS/Lambda,FunctionName} MetricName=\"Duration\" FunctionName=${local.env_prefix}', 'Maximum', 60000)"
    label = "Function Name filter"
    return_data = true
  }
}

env_prefix 将是 env-1。在绘制指标时,这在 AWS 控制台中运行良好。

现在,当我运行 Terraform 时,“更新指标警报失败:ValidationError: Period 不能为空”这句话似乎有问题,但是 according to the Terraform documentation 对此,当提供 metric_query 时,您可能没有指定期间...

我是否有一种具体的方法来限制每个环境(名称过滤器)过滤我的 Lambda 指标,而不是在整个账户中使用 Lambda 函数?

【问题讨论】:

  • 如果使用简单(但有效)的数学表达式,它是否适用成功?
  • 请您编辑您的问题以包含完整的错误输出吗?您是否尝试过导入您在控制台中创建的警报并查看 Terraform 想要在计划中将其更改为什么?

标签: amazon-web-services aws-lambda terraform amazon-cloudwatch cloudwatch-alarms


【解决方案1】:

【讨论】:

    猜你喜欢
    • 2021-05-25
    • 2019-07-14
    • 2019-12-26
    • 2018-03-23
    • 2021-10-30
    • 2023-03-06
    • 2020-12-30
    • 2019-08-27
    • 2019-05-04
    相关资源
    最近更新 更多