我有包含特定弹簧模式的日志文件。这些字符串模式在每个日志事件中频繁出现。例如:
<abc>108</abc>xyz<abc>22222</abc>
我想在CloudWatch中统计特定时间段内<abc>
的出现次数。
我这样做是为了统计每分钟发生的次数:
fields @timestamp
| parse @message "<abc>" as abc
| filter strcontains(@message, "<abc>")
| stats count(abc) by bin(1m)
但对于至少包含一次<abc>
的日志事件,它只计算一个。在上面的例子中,我希望有两个。
我怎样才能做到这一点?
我看不到任何一个函数能满足您的需求,但您可以这样做:
fields @timestamp, @message
| filter strcontains(@message, "<abc>")
| fields (strlen(@message)-strlen(replace(@message, "<abc>", ""))) / strlen("<abc>")