1

トロポスフィア スクリプトを使用して、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プロパティを共有している場合、アラームが既にメトリック フィルターにリンクされていることを願っていますが、そうではないようです。メトリック フィルターのドキュメントを見ると、操作するプロパティは 3 つしかないようです (LogGroupName、FilterPattern、および MetricTransformations のリスト)。アラームを対流圏のメトリック フィルターにリンクする方法はありませんか?

4

1 に答える 1