【问题标题】:Cloudwatch Alarms per Lambda Aliases每个 Lambda 别名的 Cloudwatch 警报
【发布时间】:2021-10-25 20:36:29
【问题描述】:

我们将lambda aliases 用作无服务器应用程序的阶段,这些别名指向同一函数的不同版本

例子

Lambda:MyLambdaConsumer

ALIAS Version
PROD 10
QA 11
DEV $LATEST

这种方法非常适合我们的需求。

但是,我们在为每个阶段创建警报时遇到了问题。我们注意到 Cloudwatch Log Streams 按版本对流ONLY进行分组,我们无法限制每个别名(阶段)的这些警报。 换句话说,当前的警报发出的声音难以区分,结果证明这不符合我们的需求

以下是 Cloudwatch 组的日志流如何按 lambda 版本

进行流式传输

所以我的问题是是否有办法为每个 ALIAS 创建 CW 警报。

只是为了提供更多的上下文化,我的这个 lambda 是 SQS 队列的消费者。

【问题讨论】:

  • 我有点困惑,日志组与指标不同,您可以在 cloudwatch 指标中按名称找到 lambda 指标并在它们之上创建警报。我可能会误解一些东西......
  • 也许我不够清楚,抱歉。让我试着解释一下。我已经按函数名称从 lambda 指标配置了一些警报,并且效果很好。问题是我们有别名作为环境,我们不能通过它查询。基本上,由于任何别名,我的警报都会响起。你明白了吗?我正在寻找一种为每个 lambda 别名设置警报的方法
  • @SándorBakos 我改进了这个问题。请让我知道现在听起来是否更清晰
  • 好的,您可以根据指标创建 CW 警报。 Lambda 具有默认指标,例如:Invocations、Errors、DeadLetterErrors、DestinationDeliveryFailures Throttles 等...您可以在控制台中查看它,Lambda CloudWatch 日志中有一个选项卡,您可以在其中按 ExecutedVersions 选择指标。现在有了这个,您可以监控运行时错误,以及其他有用的不记录相关值。与日志组有关,您可以在它们之上创建指标过滤器,您可以根据日志监控某些发生的事件,它会过滤它,
  • 但这是构造过滤器表达式的更难的方法,docs.aws.amazon.com/AmazonCloudWatch/latest/logs/…

标签: amazon-web-services aws-lambda amazon-cloudwatch metrics


【解决方案1】:

原来我应该按资源

搜索指标

如我们所见,资源按别名

分组

实际上,this document 在这里明确说明

按执行版本 (ExecutedVersion) – 查看组合的指标 别名和版本。使用 ExecutedVersion 维度进行比较 一个函数的两个版本的错误率,这两个版本都是 加权别名。

也许标签按资源本身让我感到困惑。好像和别名无关

我使用 terraform 创建了警报,因此为了将其限制为某个别名,我只是在下面添加了维度,告知函数名称和资源(函数名称 + 别名)

dimensions = {
    Resource     = "corona-skill-dev-status:${var.environment}"
    FunctionName = "corona-skill-dev-status"
  }

【讨论】:

  • 我正在使用加权别名进行部署,以实现逐渐的流量转移。我想对新版本别名的错误设置警报。我找到了ExecutedVersion 维度,但是如何从 terraform 或 cloudformation 指定 ExecutedVersion 的值?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-03
  • 1970-01-01
  • 2020-04-21
  • 2020-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多