首页 > 解决方案 > 当值超过阈值时未触发基于 Kinesis 指标的 Cloudwatch 警报

问题描述

问题描述

我们有一个 AWS Cloudwatch 警报,它非常明显地超过了正在监控的指标图表中指示的阈值线,但它没有触发。

在此处输入图像描述

这里发生了什么?警报如何能清楚地超过阈值超过其周期和评估时间而不触发?

警报配置和清空历史

在此处输入图像描述

标签: amazon-cloudwatchamazon-kinesiscloudwatch-alarms

解决方案


如果我们查看警报的设置,有两件非常有趣的事情值得注意。

在此处输入图像描述

第一个有趣的事情是警报处于Insufficient Data连续折线图的状态。

二是报警设置为秒为单位,上图以毫秒为单位。事实上,如果我们列出一组迭代器年龄的指标

aws cloudwatch get-metric-statistics --namespace "AWS/Lambda" --metric-name "IteratorAge" --dimensions Name=FunctionName,Value=prod-pipeline-rules-exec --statistics Maximum --start-time $(gdate -u -d '20 minutes ago' +%Y-%m-%dT%TZ) --end-time $(gdate -u +%Y-%m-%dT%TZ) --period 60 --region <region>
    [
        {
            "Timestamp": "2019-12-18T01:43:00Z",
            "Maximum": 2327.0,
            "Unit": "Milliseconds"
        },
        {
            "Timestamp": "2019-12-18T01:25:00Z",
            "Maximum": 2188.0,
            "Unit": "Milliseconds"
        },
        {
            "Timestamp": "2019-12-18T01:34:00Z",
            "Maximum": 2459.0,
            "Unit": "Milliseconds"
        }
    ]

单位为毫秒。

不幸的是,Cloudwatch 会将单位不匹配视为丢失数据,这将导致您的警报永远不会触发。


推荐阅读