Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon cloudformation 利用对流层将CloudWatch警报与MetricFilter关联_Amazon Cloudformation_Amazon Cloudwatch_Amazon Cloudwatch Metrics_Troposphere - Fatal编程技术网

Amazon cloudformation 利用对流层将CloudWatch警报与MetricFilter关联

Amazon cloudformation 利用对流层将CloudWatch警报与MetricFilter关联,amazon-cloudformation,amazon-cloudwatch,amazon-cloudwatch-metrics,troposphere,Amazon Cloudformation,Amazon Cloudwatch,Amazon Cloudwatch Metrics,Troposphere,我正在使用对流层脚本提供CloudWatch度量过滤器和警报。在CloudWatch中,可以手动创建一个警报,该警报基于metric筛选器从日志聚合的数据发出,但我希望在对流层脚本中链接该筛选器和警报,以尽可能节省手动劳动 以下是我对脚本的介绍(注意:下面定义和引用了一些其他资源,为了简洁起见,这些资源被省略): 这将生成一个定义良好的CloudFormation模板,但是,当我执行更改集并观察创建的度量过滤器时,我发现我想要链接到过滤器的报警没有自动设置,我需要手动创建它: 我的想法是,如果

我正在使用对流层脚本提供CloudWatch度量过滤器和警报。在CloudWatch中,可以手动创建一个警报,该警报基于metric筛选器从日志聚合的数据发出,但我希望在对流层脚本中链接该筛选器和警报,以尽可能节省手动劳动

以下是我对脚本的介绍(注意:下面定义和引用了一些其他资源,为了简洁起见,这些资源被省略):

这将生成一个定义良好的CloudFormation模板,但是,当我执行更改集并观察创建的度量过滤器时,我发现我想要链接到过滤器的报警没有自动设置,我需要手动创建它:


我的想法是,如果MetricTransformation和Alarm共享相同的MetricName属性,则希望报警已经链接到metric筛选器,但情况似乎并非如此。查看,似乎只有三个属性可以使用(LogGroupName、FilterPattern和MetricTransformation列表)。没有办法将警报与对流层中的公制滤波器联系起来吗?

根据评论

问题在于
Ref(“metricNamespace”)
与“AWS/Logs”不同。随后,MetricFilter和Alarm使用了不同的名称空间


将名称空间设置为与批处理错误相同的值修复了基于注释的问题

问题在于
Ref(“metricNamespace”)
与“AWS/Logs”不同。随后,MetricFilter和Alarm使用了不同的名称空间


将名称空间设置为与批处理错误相同的值修复了问题

Ref(“metricNamespace”)
与“AWS/Logs”相同?它是一个设置为“批处理错误”的字符串参数。我要将报警名称空间设置为“BATCH-ERRORS”,看看这是否有助于我的原因…它与更改的结果如何?看起来这就成功了。如果你愿意的话,你可以把它作为答案贴出来,我会批准的,这样你就能得到答案了。我会这样做的。
Ref(“metricNamespace”)
与“AWS/Logs”相同吗?它是一个设置为“BATCH-ERRORS”的字符串参数。我要将报警名称空间设置为“BATCH-ERRORS”,看看这是否有助于我的原因…它与更改的结果如何?看起来这就成功了。如果你愿意的话,你可以把它作为答案贴出来,我会批准的,这样你就能得到答案了。我会的。
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), ]   
    )
)