我已阅读ECS 监控文档,但未找到如何使用 CloudWatch Events 或 Metrics 帮助对达到ECS 任务内存限制发出警报。我遇到过这样的情况,当 ECS 容器突破默认任务硬限制 512 Mb 并重新启动时。CloudWatch Event触发ECS 任务状态更改,例如从 RUNNING 到 STOPPED,但在事件详细信息中,"stoppedReason"
您可能只会发现“任务在...中失败的 ELB 运行状况检查”,尽管我明确知道实际原因是内存限制突破和容器谋杀码头工人方面。这是事件规则模式:
{
"source": [
"aws.ecs"
],
"detail-type": [
"ECS Task State Change"
],
"detail": {
"lastStatus": [
"STOPPED"
]
}
}
Run Code Online (Sandbox Code Playgroud)
CloudWatchMemoryUtilization
维度指标也ServiceName
没有多大帮助,因为触发警报的最短周期(范围)是 1 分钟,但容器终止-重新启动周期运行得更快。时间不够,无法抓住高峰。我想这与ClusterName
维度(换句话说,对于整个集群)也是相关的。
我想知道如何获取有关任务(容器、容器实例)硬内存限制突破的通知?
有什么方法可以在Terraform控制台中获取局部变量吗?
> local.name
unknown values referenced, can't compute value
Run Code Online (Sandbox Code Playgroud)
似乎Terraform控制台仅允许检查输入变量和模块输出变量。
> var.in
2
> module.abc.out
3
Run Code Online (Sandbox Code Playgroud)
配置文件示例:
# main.tf
locals {
name = 1
}
variable "in" {
value = 2
}
module "abc" {
source "path/to/module"
}
# path/to/module/main.tf
output "out" {
value = 3
}
Run Code Online (Sandbox Code Playgroud) 我想创建下一个DSL部分:
* 'Ruby'
Run Code Online (Sandbox Code Playgroud)
下一个实验显示了可预测的结果:
def *(a)
a
end
* 'Ruby' #=> SyntaxError: (irb):4: syntax error, unexpected '\n', expecting :: or '[' or '.'
self.*(1) #=> NoMethodError: private method `*' called for main:Object
self.send(:*, 1) #=> 'Ruby'
Run Code Online (Sandbox Code Playgroud)
我想Ruby语法分析器将这种表达式视为星号方法的splat运算符或语法糖.有人可以解释这个更详细和(如果可能)提供解决方案来解决我的问题?
大写词必须先
安德鲁网和安德鲁
安德鲁安德鲁安德里网
UPD:
安德鲁网安德鲁
安德鲁安德雷安德鲁网