【发布时间】:2021-10-12 07:58:03
【问题描述】:
我已配置 ECS 集群部署,详情如下:
- 服务作为 Fargate 实例启动
- 服务将根据 SQS 队列的大小进行缩放
- 每个服务都会产生一个指标时间序列
- 部署了一个 Cloudwatch 代理实例,每 1 分钟从服务实例中提取指标
我遇到的问题是:
- 一个服务实例正在运行
- 队列大小增加触发横向扩展
- 另一个服务实例已启动
- Cloudwatch 代理正在从两个实例中提取指标
- 队列大小减小并触发缩减
- 服务实例在 30 秒内停用
- 但是 Cloudwatch 代理没有及时从停用的实例中收集指标,这些指标现在丢失了
人们使用了哪些技术来解决这个问题?
我能想到的唯一解决方案是向我的服务添加睡眠,使其在发出终止信号时等待 60 多秒(同时延长 ecs_stop_container_timeout),从而让 Cloudwatch 代理有时间检索最终的一组指标。这可能有效,但感觉就像是 hack。
谢谢
【问题讨论】:
标签: amazon-cloudwatch terraform-provider-aws aws-fargate