Из вашего вопроса я понимаю следующие требования:
- У вас есть несколько метрик и вы хотите использовать логическое условие ИЛИ при настройке тревоги, например (avg metric1> x || avg metric2> y) ==> установить состояние тревоги ALARM
- Вы хотите, чтобы сигнализация учитывала новые метрики по мере их появления, когда новые экземпляры запускаются эластичным beanstalk во время масштабирования.
- Требуется старыйметрики не должны учитываться, как только масштабируется эластичный бобовый стебель.
Я думаю, что в настоящее время это невозможно.
На дискуссионных форумах AWS продолжается обсуждение [1], которое показывает, что по крайней мере(1) возможно с использованием метрической математики.Функция Metric Math поддерживает макс.10 метрик.
Решение
Вам необходимо создать одну метрику, которая будет передавать информацию о том, должен ли срабатывать сигнал тревоги или нет ( «вычисленная метрика» ).Есть несколько способов добиться этого:
- Для сложных метрик вы можете написать скрипт bash и запустить его на экземпляре EC2 с помощью cron.Скрипт сначала запрашивает существующие метрики с использованием фильтра измерений («list-metrics»), затем собирает каждую метрику («get-metric-data»), агрегирует ее и затем выдвигает точку вычисленных метрических данных («put-metric-data»).').
- Если показатель довольно прост, вы можете попробовать опцию aggregate скрипта AWS put-metric-data [2]:
option_settings:
"aws:elasticbeanstalk:customoption" :
CloudWatchMetrics : "--mem-util --mem-used --mem-avail --disk-space-util --disk-space-used --disk-space-avail --disk-path=/ --auto-scaling --aggregated"
Документация для агрегированного параметра гласит:
Добавляет агрегированные метрики для типа экземпляра, идентификатора AMI и в целом для региона .
Ссылки
[1] https://forums.aws.amazon.com/thread.jspa?threadID=94984
[2] https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html#put-metric-data