标签: cloudwatch-alarms

基于自定义指标的指标名称的所有维度的 Cloudwatch 警报

我们正在从我们的服务发布自定义 Cloudwatch 指标,并希望在指标名称的值超出任何维度的阈值时设置警报。以下是我们发布的指标:

  1. Namespace=SameName, MetricName=Fault, Dimensions=[ Operation=A , Program=ServiceName]
  2. Namespace=SameName, MetricName=Fault, Dimensions=[ Operation=B , Program=ServiceName]
  3. Namespace=SameName, MetricName=Fault, Dimensions=[ Operation=C , Program=ServiceName]

我们想设置一个警报,以便Fault跨任何维度将其置于Alarm状态。

可以看到,维度Operation的值是不同的。目前,我们只有这 3 个操作,所以我知道我们可以使用度量数学来设置此警报。但我相信我们会达到一个持续增长的地步。

我可以使用 SEARCH 表达式 + 跨搜索表达式聚合来为其生成图表,但它不允许我创建一个警报说 The expression for an alarm must include at least one metric.

有没有其他方法可以实现这一目标?

amazon-cloudwatch amazon-cloudwatch-metrics cloudwatch-alarms

3
推荐指数
1
解决办法
1988
查看次数

AWS EC2 Autoscaling 目标跟踪策略如何扩展?

我观察到 15 分钟内需要 15 个数据点才能触发警报并开始缩小规模,但我找不到更改或调整此行为的选项。

我们可以改变这种行为,还是必须定义另一个扩展策略来进行扩展?

看起来它是针对 CPU 利用率的目标跟踪扩展策略的默认设置

  1. 3 分钟内 3 个数据点的 CPUUtilization > 50 [将触发高警报]
  2. 15 分钟内 15 个数据点的 CPUUtilization < 35 [将触发低警报]

这是真的?

amazon-ec2 amazon-web-services autoscaling amazon-cloudwatch cloudwatch-alarms

2
推荐指数
1
解决办法
2284
查看次数

如何将 CloudWatch 警报配置为每 X 分钟评估一次

我想将 CloudWatch 警报配置为:

  • 每 30 分钟对最后 30 分钟的 ApplicationRequestsTotal 指标求和一次
  • 如果总和等于 0 则报警

我已将自定义 CloudWatch ApplicationRequestsTotal 指标配置为每 60 秒为我的服务发出一次。

我已将警报配置为:

{
    "MetricAlarms": [
        {
            "AlarmName": "radio-silence-alarm",
            "AlarmDescription": "Alarm if 0 or less requests are received for 1 consecutive period(s) of 30 minutes.",
            "ActionsEnabled": true,
            "OKActions": [],
            "InsufficientDataActions": [],
            "MetricName": "ApplicationRequestsTotal",
            "Namespace": "AWS/ElasticBeanstalk",
            "Statistic": "Sum",
            "Dimensions": [
                {
                    "Name": "EnvironmentName",
                    "Value": "service-environment"
                }
            ],
            "Period": 1800,
            "EvaluationPeriods": 1,
            "Threshold": 0.0,
            "ComparisonOperator": "LessThanOrEqualToThreshold",
            "TreatMissingData": "missing"
        }
    ],
    "CompositeAlarms": []
}
Run Code Online (Sandbox Code Playgroud)

我设置了很多这样的警报,每个警报似乎都是: …

amazon-web-services amazon-cloudwatch cloudwatch-alarms

2
推荐指数
1
解决办法
4315
查看次数

CloudWatch 警报不会因丢失数据而触发

我有一个具有以下配置的 AWS CloudWatch 警报:

Type
Metric alarm

State
OK

Threshold
METRIC_NAME <= 0 for 1 datapoints within 1 day

Last change
2022-04-14 23:30:54

Actions
Actions enabled

Metric name
METRIC_NAME

Statistic
Average

Period
1 day

Datapoints to alarm
1 out of 1

Missing data treatment
Treat missing data as bad (breaching threshold)

Percentiles with low samples
evaluate
Run Code Online (Sandbox Code Playgroud)

在过去的几天里,我们一直缺少该指标的数据,导致图表如下所示:

缺失数据

我的理解是,鉴于上述配置以及过去 3 天的丢失数据,该警报应该已触发。然而,事实并非如此。基于 AWS 文档:https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html,一个为期 1 天的警报,1 个数据点中的 1 个要警报,以及缺失的数据breaching处理从 OK -> ALARM 更改警报状态。我在这里缺少一个关键组件吗?谢谢!

amazon-web-services amazon-cloudwatch cloudwatch-alarms

2
推荐指数
1
解决办法
1908
查看次数

AWS。Cloudwatch 警报状态变化触发规则

我在 CloudWatch 警报状态更改上触发 Cloudwatch 规则时遇到问题。这是规则的事件模式。它不会向 SNS 发送状态更改消息。

{
  "detail-type": [
    "CloudWatch Alarm State Change"
  ],
  "resources": [
    !Sub "arn:aws:cloudwatch:${AWS:Region}:${AWS:AccountId}:alarm:Admin dead"
  ],
  "source": [
    "aws.cloudwatch"
  ],
  "detail": {
    "state": [
      "ALARM"
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

警报本身正常工作并并行向 SNS 发送消息。另外,如果我删除这部分:

"detail": {
    "state": [
      "ALARM"
    ]
  }
Run Code Online (Sandbox Code Playgroud)

那么该规则对于每个状态变化都可以正常工作。但我只需要将其更改为“警报中”(如用户界面中显示的那样)。

感谢您的任何建议

rules amazon-web-services amazon-sns amazon-cloudwatch cloudwatch-alarms

1
推荐指数
1
解决办法
6615
查看次数

服务器列表的 Cloudwatch 警报

我试图在服务器列表中设置一些警报,我在本地定义了我的服务器,如下所示:

  locals {
      my_list = [
        "server1",
        "server2"
      ]
    }
Run Code Online (Sandbox Code Playgroud)

然后我将我的 cloudwatch 警报定义如下:(这是一个这样的警报)

resource "aws_cloudwatch_metric_alarm" "ec2-high-cpu-warning" {
  for_each            = toset(local.my_list)
  alarm_name          = "ec2-high-cpu-warning-for-${each.key}"
  comparison_operator = "GreaterThanThreshold"
  evaluation_periods  = "1"
  metric_name         = "CPUUtilization"
  namespace           = "AWS/EC2"
  dimensions = {
    instanceid   = values(data.aws_instances.my_instances)[*].ids
    instancename = local.my_list
  }

  period                    = "60"
  statistic                 = "Average"
  threshold                 = "11"
  alarm_description         = "This warning is for high cpu utilization for ${each.key}"
  actions_enabled           = true
  alarm_actions             = [data.aws_sns_topic.my_sns.arn]
  insufficient_data_actions = []
  treat_missing_data        = "notBreaching"
}
Run Code Online (Sandbox Code Playgroud)

我还将数据源定义如下:

data …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform cloudwatch-alarms

1
推荐指数
1
解决办法
738
查看次数