Boto3 CloudWatch - put_metric_alarm с несколькими метриками и математическим выражением - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь создать тревогу с помощью Boto3 - CloudWatch - put_metric_alarm и испытываю трудности.

Вот ключевые слова аргументы, предоставляемые функции:

{'ActionsEnabled': False,
 'AlarmDescription': 'Monitor for Idle instances',
 'AlarmName': 'IdleComponents',
 'ComparisonOperator': 'GreaterThanThreshold',
 'DatapointsToAlarm': 6,
 'EvaluationPeriods': 6,
 'Metrics': [{'Id': 'CPU',
              'MetricStat': {'Metric': {'Dimensions': [{'Name': 'InstanceId',
                                                        'Value': 'i-XX'}],
                                        'MetricName': 'CPUUtilization',
                                        'Namespace': 'AWS/EC2'},
                             'Period': 300,
                             'Stat': 'Average',
                             'Unit': 'Percent'},
              'ReturnData': False},
             {'Id': 'Net',
              'MetricStat': {'Metric': {'Dimensions': [{'Name': 'InstanceId',
                                                        'Value': 'i-XX'}],
                                        'MetricName': 'NetworkIn',
                                        'Namespace': 'AWS/EC2'},
                             'Period': 300,
                             'Stat': 'Average',
                             'Unit': 'Megabytes'},
              'ReturnData': False},
             {'Expression': 'IF(CPU < 5, 1, 0) AND IF(Net < 5, 1, 0)',
              'Id': 'e1',
              'ReturnData': True}],
 'Threshold': 0}

Из визуального осмотра это кажется допустимым вводом, и выражение работает как нужно при создании его вручную на консоли CloudWatch, но при запуске этого через Boto3 я получаю:

botocore.exceptions.ClientError: Произошла ошибка (ValidationError), когда вызов операции PutMetricAlarm: список недействительных метрик

В документации здесь утверждается, что вы можете определить тревогу так, что вы можете использовать до 10 метрик и 10 выражений с одним из Metri c запрашивает возврат данных для тревоги.

Я не уверен, что я делаю здесь неправильно. Спасибо

1 Ответ

1 голос
/ 09 марта 2020

Идентификатор должен начинаться со строчной буквы, попробуйте изменить CPU и Net на cpu и net.

...