4

我已阅读ECS 监控文档,但没有找到如何通过 CloudWatch Events 或 Metrics 帮助对ECS 任务内存限制命中发出警报。我的情况是,当 ECS 容器打破默认任务硬限制 512 Mb 并重新启动时。CloudWatch 事件触发ECS 任务状态更改,例如从 RUNNING 到 STOPPED,但在事件详细信息中,"stoppedReason"您可能只会发现“Task failed ELB health checks in ...”,尽管我绝对知道实际原因是内存限制中断和容器谋杀码头工人方面。这是事件规则模式:

{
  "source": [
    "aws.ecs"
  ],
  "detail-type": [
    "ECS Task State Change"
  ],
  "detail": {
    "lastStatus": [
      "STOPPED"
    ]
  }
}

MemoryUtilization维度的CloudWatch指标ServiceName也没有多大帮助,因为触发警报的最短时间段(范围)是 1 分钟,但容器终止-重启周期运行得更快。赶上尖峰的时间还不够。我想这与ClusterName维度相关(换句话说,对于整个集群)。

我想知道如何获得有关任务(容器、容器实例)硬内存限制中断的通知?

4

3 回答 3

1

或者,您可以在 cloudwatch 指标上使用 SNS 服务设置警报,以便在内存利用率超过限制时通知自己。

于 2018-04-26T23:56:47.507 回答
0

当您为 ecs 服务创建自动缩放时,选择内存利用率作为阈值保持,ecs 将为其创建云监视警报,然后转到云监视警报仪表板并使用 SNS 通知修改该警报。当内存利用率高或低时,您会收到通知。

  • 您也可以在 cloudwatch 仪表板中手动创建相同的警报。
于 2018-08-22T09:21:06.130 回答
0

假设

  • 您的目标是确定重新启动的原因是内存使用而不是其他原因。
  • 内置内存指标没有以足够高的频率报告。

您可以从 ECS 内部编写自己的自定义高分辨率指标,该指标每隔一秒报告一次内存使用情况。

于 2018-04-25T14:42:26.823 回答