Как заставить CodeDeploy синим / зеленым создавать сигналы CloudWatch для пользовательских метрик?

#amazon-cloudwatch #autoscaling #aws-code-deploy

#amazon-cloudwatch #автоматическое масштабирование #aws-code-deploy

Вопрос:

Я использую агент CloudWatch для создания показателей использования диска, памяти, процессора и пары других вещей. Я хотел бы агрегировать показатели на основе группы автоматического масштабирования, используя "AutoScalingGroupName":"${aws:AutoScalingGroupName}" .

Тем не менее, я использую синие / зеленые развертывания с CodeDeploy, которые создают копию группы автоматического масштабирования. Сигналы, которые я изначально создавал для агрегаций в группах автоматического масштабирования, исчезли, и я не могу поместить виджет на свою панель мониторинга, который показывает среднее значение процессора, памяти и т.д.

Моим быстрым решением было использовать пользовательский append_dimension , для которого задано жестко заданное значение, и агрегировать измерения по нему. Есть ли автоматизированный способ, предоставляемый AWS, о котором я не знаю?

Комментарии:

1. append_dimensions — это единственный способ, которым я могу думать. Даже с другими платформами метрик, такими как InfluxDB / Telegraf, вам придется указать какой-либо пользовательский тег, например service / tier.

Ответ №1:

У меня нет опыта работы с описанным выше сценарием с использованием консоли AWS.

Но, поскольку я работаю в основном над Terraform (инфраструктура как код), вы можете использовать это:

 dimensions = {
    AutoScalingGroupName = tolist(aws_codedeploy_deployment_group.autoScalingGroup.autoscaling_groups)[0]
  }
  

Причина преобразования его в список — вывод

aws_codedeploy_deployment_group.asg.autoscaling_groups

это установленное значение, которое вы можете увидеть при выводе значения группы автоматического масштабирования codedeployment group — оно использует toset функцию. Метрические измерения для аварийного сигнала CloudWatch metric ожидают string . Итак, преобразование set типа (который неупорядочен) в list type необходимо для того, чтобы вы могли получить доступ к первому элементу группы автоматического масштабирования, которая является недавно созданной копией группы автоматического масштабирования с помощью codedeploy.