警报长时间处于不足状态。
指标图
这是创建警报的代码:
import boto3
# Create CloudWatch client
cloudwatch = boto3.client('cloudwatch')
# Create alarm
cloudwatch.put_metric_alarm(
AlarmName='Web_Server_CPU_Utilization',
ComparisonOperator='GreaterThanThreshold',
EvaluationPeriods=1,
MetricName='CPUUtilization',
Namespace='AWS/EC2',
Period=60,
Statistic='Average',
Threshold=70.0,
ActionsEnabled=False,
AlarmDescription='Alarm when server CPU exceeds 70%',
Dimensions=[
{
'Name': 'InstanceId',
'Value': 'INSTANCE_ID'
},
],
Unit='Seconds'
)
还尝试为自定义指标创建指标警报,但这存在不同的问题。
所有预定义指标都在AWS namespaces
中,而自定义指标都在Custom namespaces
中。
尝试给出Namespace='Custom/EC2'
,Namespace='EC2'
,Namespace='Custom/EC2'
,Namespace='AWS/EC2'
,Namespace='Custom/Custom'
。
但是其中任何一种情况。它并没有推动受人尊敬的指标。
答案 0 :(得分:1)
您是否在EC2实例中启用了detailed monitoring?
默认情况下,您的实例已启用基本监视。您可以 (可选)启用详细监视。启用后详细 监控,Amazon EC2控制台显示实例的监控图,周期为1分钟。
您要在60秒内配置警报,并在1个数据点上警报,因此,如果度量标准不是每分钟发布一次the alarm will go into insufficient data。您可以在EC2实例中启用详细监视,也可以将警报时间更改为300秒。
答案 1 :(得分:0)
您如何推动自定义指标?您是使用自己的脚本还是CloudWatch代理之一?
如果是CloudWatch代理,请检查代理的日志。 https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/troubleshooting-CloudWatch-Agent.html#CloudWatch-Agent-troubleshooting-loginfo
如果使用某些SDK(例如boto3),则打印响应或添加调试 https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/boto3.html
我尝试过AWS CLI-
saws> aws cloudwatch put-metric-data --namespace AWS/EC2 --metric-name Sufyan --value 32 --region ap-southeast-2
An error occurred (InvalidParameterValue) when calling the PutMetricData operation: The value AWS/ for parameter Namespace is invalid.
saws> aws cloudwatch put-metric-data --namespace Custom/EC2 --metric-name Test --value 32 --region ap-southeast-2
答案 2 :(得分:0)
尝试发送不带put_metric_alarm
属性的Unit
请求。事实是,如果您基于指标创建警报,则不应定义维度或单位属性。