从 Cloudwatch 中的字符串中提取数值以在指标中使用(例如“64MB”)

Mic*_*ael 9 amazon-cloudwatch amazon-cloudwatchlogs amazon-cloudwatch-metrics

是否可以创建一个指标,从 Cloudwatch 日志中的字符串中提取数值,以便我可以对其进行绘图/报警?

例如,日志可能是:20190827 1234 类别:文件大小:64MB

我意识到我可以使用过滤器模式捕获空格分隔的字段,例如:[日期,时间,类,word1,word2,文件大小]

file_size 将为“64MB”,但如何将其转换为要绘制的数字 64?

额外的问题,是否有任何方法可以将“文件大小:”作为一个字段进行匹配,而不是为每个空格分隔的单词创建一个字段?

Pra*_*ngh 3

用于abs转换为数字或任何其他数字函数

使用 Glob 表达式

fields @message
| parse @message "File size: *MB" as size
| filter abs(size)<64
| limit 20
Run Code Online (Sandbox Code Playgroud)

使用正则表达式

fields @message
| parse @message /File size:\s+(?<size>\d+)MB/
| filter abs(size)<64
| limit 20
Run Code Online (Sandbox Code Playgroud)

要了解如何使用 glob 或正则表达式,请参阅Cloud Watch Logs 查询语法