我正在使用Troposphere脚本来配置CloudWatch指标过滤器和警报。在CloudWatch中,可以手动创建一个警报,该警报基于度量过滤器从日志聚合的数据而关闭,但是我想在Troposphere脚本中链接过滤器和警报,以节省人工。
这是我为脚本准备的(注意:为简洁起见,下面定义并引用了一些其他资源):
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属性,则希望该警报已经链接到度量过滤器,但事实并非如此。查看documentation for metric filters,似乎只有三个属性可以使用(LogGroupName,FilterPattern和MetricTransformations列表)。无法将警报与对流层中的度量过滤器链接起来?
根据评论。