如何让 CodeDeploy Blue/Green 为自定义指标创建 CloudWatch 警报?
Posted
技术标签:
【中文标题】如何让 CodeDeploy Blue/Green 为自定义指标创建 CloudWatch 警报?【英文标题】:How to make CodeDeploy Blue/Green create CloudWatch alarms for custom metrics? 【发布时间】:2020-12-20 21:50:13 【问题描述】:我正在使用 CloudWatch 代理来创建磁盘使用情况、内存使用情况、cpu 和其他一些指标的指标。我想使用 "AutoScalingGroupName":"$aws:AutoScalingGroupName"
根据自动缩放组聚合指标。
但是,我将 Blue/Green 部署与 CodeDeploy 结合使用,这会创建 Autoscaling Group 的副本。我最初为自动缩放组上的聚合所做的警报已经消失,我无法在我的仪表板中放置一个显示平均 cpu、内存等的小部件。
我的快速解决方案是使用设置为硬编码值的自定义append_dimension
,并在其上聚合维度。 AWS 是否提供了一种我不知道的自动化方式?
【问题讨论】:
append_dimensions 也是我能想到的唯一方法。即使使用其他指标平台,如 InfluxDB/Telegraf,您也必须指定一些自定义标签,如服务/层。 【参考方案1】:我没有使用 AWS 控制台的上述场景的经验。
但是,由于我主要使用 Terraform(基础设施即代码),您可以这样使用:
dimensions =
AutoScalingGroupName = tolist(aws_codedeploy_deployment_group.autoScalingGroup.autoscaling_groups)[0]
将其转换为列表的原因 - 的输出
aws_codedeploy_deployment_group.asg.autoscaling_groups
是一个设定值,你可以在输出编码部署组自动缩放组的值时看到它——它使用toset
函数。 CloudWatch 指标警报的指标维度需要string
。因此,需要将 set
类型(无序)转换为 list
类型,以便您可以访问自动缩放组的第一个元素 - 这是 codedeploy 新创建的自动缩放组副本。
【讨论】:
以上是关于如何让 CodeDeploy Blue/Green 为自定义指标创建 CloudWatch 警报?的主要内容,如果未能解决你的问题,请参考以下文章
PCL进阶:点云渲染渐变赋色(Blue>Green>Yellow>Red)