我在尝试使用 Terraform 配置 AWS CloudWatch Log Metric Filter 时遇到错误。我的目标是创建一个指标过滤器,根据级别和记录器字段捕获特定的日志数据。但是,我不断收到“无效的指标过滤器模式”错误,并且我不确定如何更正模式语法。
这是我的 Terraform 配置:
resource "aws_cloudwatch_log_metric_filter" "log_count_metric_filter" {
name = "logGroupCount"
pattern = "{ $.level = * } { $.logger = <*> }"
log_group_name = "myLogGroup"
metric_transformation {
name = "logErrorCount"
namespace = "logSpace"
value = "1"
dimensions = {
level = "$.level"
logger = "$.logger"
# message = "$.message"
}
}
}
我收到的错误是:
Error: putting CloudWatch Logs Metric Filter (logGroupCount: InvalidParameterException: Invalid metric filter pattern
with module.data-retention.aws_cloudwatch_log_metric_filter.log_count_metric_filter
on <> line 21, in resource "aws_cloudwatch_log_metric_filter" "log_count_metric_filter":
我尝试了该模式的几种变体(
pattern = "{$.level $.logger}"
),例如删除逗号,更改结构,但我不断遇到相同的错误。我正在寻找有关如何根据 AWS CloudWatch Logs 过滤器模式语法正确设置此模式格式的指南。
正确的模式
pattern = "{ $.level = * && $.logger = * }"