amazon-cloudformation - 使用 Troposphere 将 CloudWatch 警报与 MetricFilter 相关联
问题描述
我正在使用对流层脚本来预置 CloudWatch 指标过滤器和警报。在 CloudWatch 中,可以手动创建一个警报,该警报会根据指标过滤器从日志中聚合的数据发出警报,但我想在对流层脚本中链接过滤器和警报,以尽可能节省人工。
这是我对脚本的内容(注意:下面定义和引用了一些其他资源,为简洁起见省略):
t.add_resource(logs.MetricFilter(
"PlanReconciliationPlansStepMetricFilter",
FilterPattern="INFO generatePlanReconciliationStepKnownToMorningstarInPlans",
LogGroupName=Ref("logGroupName"),
MetricTransformations=[logs.MetricTransformation(
"planReconciliationPlansStepMetricTransformation",
MetricNamespace=Ref("metricNamespace"),
MetricName=Join("", [Ref("springProfile"), "-", "plan-reconciliation-plans-step"]),
MetricValue="1")]
))
alarmPlans = t.add_resource(
Alarm(
"PlanReconciliationPlansAlarm",
AlarmDescription="Alarm if plan reconciliation metric filter is exceeded",
Namespace="AWS/Logs",
MetricName=Join("", [Ref("springProfile"), "-", "plan-reconciliation-plans-step"]),
Statistic="Sum",
Period="60",
EvaluationPeriods="1",
Threshold="0",
ComparisonOperator="GreaterThanThreshold",
AlarmActions=[Ref(alarmTopic), ]
)
)
这会生成一个定义明确的 CloudFormation 模板,但是,当我执行更改集并观察创建的指标过滤器时,我看到我想要链接到过滤器的警报没有自动设置,我需要手动创建它:
我的想法是,如果 MetricTransformation 和 Alarm 共享相同的MetricName属性,希望警报已经链接到指标过滤器,但似乎情况并非如此。查看 metric filters的文档,似乎只有三个属性可以使用(LogGroupName、FilterPattern 和 MetricTransformations 列表)。有没有办法将警报与对流层中的度量过滤器联系起来?
解决方案
根据评论。
问题在于Ref("metricNamespace")
与“AWS/Logs”不同。随后,MetricFilter 和 Alarm 使用不同的命名空间。
将命名空间设置为相同的值可以BATCH-ERRORS
解决问题。
推荐阅读
- c++ - 关闭窗口后幽灵窗口/位图徘徊 - MFC SDI
- angular - 无法读取某些 cookie
- django - 将范围的一部分注释到新字段
- deep-learning - 输入 0 与层 conv2d_transpose_1 不兼容:预期 ndim=4,发现 ndim=2
- ubuntu - Ubuntu 擦除命令
- pdf - chrome 的动态 XFA PDF 问题(“请稍候...”)
- python - Seaborn:来自两个数据框的分组箱线图
- php - 获取输入帖子在codeigniter中不起作用
- sml - 比较 sml 中的真实列表
- vba - Vba 设置单元格等于另一个工作表中的单元格