【问题标题】:AWS ECS Is it possible to alert on memory utilization limit hit?AWS ECS 是否可以在内存利用率限制达到时发出警报?
【发布时间】:2018-08-22 17:21:06
【问题描述】:

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

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

CloudWatch MemoryUtilization Metric 对于ServiceName 维度也没有多大帮助,因为触发警报的最短时间(范围)为 1 分钟,但容器kill-restart 循环运行得更快。赶上尖峰的时间还不够。我想这同样适用于ClusterName 维度(换句话说,适用于整个集群)。

我想知道如何获得关于任务(容器,容器实例)硬内存限制突破的通知?

【问题讨论】:

    标签: amazon-web-services amazon-cloudwatch amazon-ecs aws-ecs


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      假设

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

      您可以在 ECS 内部编写自己的 custom high resolution metric,它会每隔一秒报告一次内存使用情况。

      【讨论】:

        【解决方案3】:

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

        • 您也可以在 cloudwatch 仪表板中手动创建相同的警报。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-12-23
          • 1970-01-01
          • 1970-01-01
          • 2011-06-04
          • 2018-09-23
          • 1970-01-01
          • 2019-01-03
          • 2021-11-22
          相关资源
          最近更新 更多