AWS Cloudwatch Log Insights - 替换字符串函数

xxj*_*jnn 1 amazon-web-services aws-cloudwatch-log-insights

如何使用 AWS Cloudwatch Log Insights 的替换功能?

文档没有给出工作示例。

给定包含路径的日志,例如/api/lumberjack/123/axe/456/fashion

我在尝试:

fields message
| parse message "path=* " as path
| fields replace(path, /[0123456789]+/, 'ID') as uniqpath
| stats count(*) by uniqpath
Run Code Online (Sandbox Code Playgroud)

我期望的结果如下:

uniqpath | count
/api/lumberjack/ID/axe/ID/fashion | 12
/api/lumberjack/ID/beardedness | 44
Run Code Online (Sandbox Code Playgroud)

但它却抱怨“无效的参数,收到:(路径)但预期:(str:字符串,searchValue:字符串,replaceValue:字符串)”

OAR*_*ARP 6

replace函数接受字段作为第一个参数的输入。

不支持的是第二个论点。您正在传递一个不被识别为字符串的正则表达式。

我还没有找到将正则表达式转换为字符串的方法。但至少您可以传递path第一个参数的字段名称。我已经测试过它更改普通字符串的正则表达式。

询问:

fields @message
| parse @message "path=*" as path
| fields replace(path, 'lumberjack', 'ID') as uniqpath
| stats count(*) by uniqpath
Run Code Online (Sandbox Code Playgroud)

结果:

查询结果