就Splunk而言,我是一名新手,只关心适度的正则表达式技能。
我们有以下模式的事件:
fallbackAPIStatus={api1=133:..., api2=472:...,api3=498:...}
fallbackAPIStatus={api1=3535:...}
fallbackAPIStatus={api2=252:...,api3=655:...}
数值表示响应时间,省略号表示我不感兴趣的字段。
括号内的api数量是动态的(介于1和4之间)
我希望能够如下创建表:
apiName TotalRequests Max-Response-Time Min-Response-Time
api1 2 3535 133
api2 2 472 252
api2 2 655 498
这是我的搜索:
index=my_logs sourcetype=my_sourcetype | rex field=_raw "fallbackAPIStatus=\{(?P<fallBackApis>[^\}]+)\}" | eval temp=split(fallBackApis,",") | rex field=temp "(?P<apiName>[a-zA-Z-]+)=(?P<responseTime>[0-9]+):"|stats count as TotalRequests max(responseTime) as Max-Response-Time min(responseTime) as Min-Response-Time by apiName
我能够正确设置TotalRequests,但是我无法获得正确的最大和最小响应时间
有人可以告诉我我在做什么错吗?
| eval temp=split(fallBackApis,",") | rex field=temp "(?<apiName>\S+)=(?<responseTime>\d+):"