我正在尝试在 AWS CloudFormation 模板中定义一个指标过滤器,以匹配来自 CloudWatch 的 JSON 格式的日志事件。以下是日志事件的示例:
{
"httpMethod": "GET",
"resourcePath": "/deployment",
"status": "403",
"protocol": "HTTP/1.1",
"responseLength": "42"
}
这是我当前尝试使用此处文档中给出的示例创建 MetricFilter 以匹配状态字段:FilterAndPatternSyntax
"DeploymentApiGatewayMetricFilter": {
"Type": "AWS::Logs::MetricFilter",
"Properties": {
"LogGroupName": "/aws/apigateway/DeploymentApiGatewayLogGroup",
"FilterPattern": "{ $.status = \"403\" }",
"MetricTransformations": [
{
"MetricValue": "1",
"MetricNamespace": "ApiGateway",
"DefaultValue": 0,
"MetricName": "DeploymentApiGatewayUnauthorized"
}
]
}
}
我在 CloudFormation 中收到“无效的指标过滤器模式”消息。
我尝试过的其他变体不起作用:
"{ $.status = 403 }" <- no escaped characters
{ $.status = 403 } <- using a json object instead of string
我已经能够使用以类似方式定义的括号表示法成功过滤以空格分隔的日志事件,但 json 格式的日志事件不遵循相同的约定。