我想了解有多少用户拥有蓝色&有多少人为所有独特用户都有红色?
[2011-09-30 18:15:01:559 GMT+00:00][137D3B5A5F196F81A405858E6A5AA01F.maps-358-thread-1][com.abc.myaction.myfilter] INFO email=abc@hotmail.com userid=1234
[2011-09-30 18:15:01:559 GMT+00:00][237D3B5A5F197F81A405858E6A5AA0WD.maps-158-thread1][com.abc.myaction.myfilter] INFO email=pqr@rff.com userid=4235
[2011-09-30 18:15:01:559 GMT+00:00][337D3B5A5F198F81A405858E6A5AA0GW.maps-258-thread-1][com.abc.myaction.myfilter] INFO email=xyz@abc.com userid=7645
[2011-09-30 18:14:58:768 GMT+00:00][237D3B5A5F198F81A405858E6A5AA09F.http-8080-11][com.pqr.abclogging.mywrapper] DEBUG redColor=true blueColor=false
[2011-09-30 18:14:58:768 GMT+00:00][237D3B5A5F197F81A405858E6A5AA0WD.http-8080-11][com.fff.filter] DEBUG redColor=true blueColor=false
[2011-09-30 18:14:58:768 GMT+00:00][137D3B5A5F196F81A405858E6A5AA01F.http-8080-11][com.xyz.wrapper] DEBUG redColor=false blueColor=true
[2011-09-30 18:14:58:768 GMT+00:00][337D3B5A5F198F81A405858E6A5AA0GW.http-8080-11][com.xyz.wrapper] DEBUG redColor=false blueColor=true
在上面的日志中,我将获得所有不同的用户和&那么对于每个用户,我需要获得他们的会话ID和它们在包含DEBUG&检查redColor是否为真。
因此,在上述情况下,输出应为:
红色用户数= 1(注意:237D3B5A5F198F81A405858E6A5AA09F与任何内容都不匹配,因此即使其红旗为真也不计算)蓝色用户数= 2
在splunk中这可能吗?
答案 0 :(得分:0)
首先,您是否为sessionid提取了一个字段?在下面的例子中,我假设它可用
sourcetype=yoursourcetype | transaction sessionid | search debug
| eval redCount = if(isnull(mvfind(redColor,"true")), 0, 1)
| eval blueCount = if(isnull(mvfind(blueColor,"true")), 0, 1)
| search redCount > 0 OR blueCount > 0
| stats avg(redCount) avg(blueCount) by userid
| stats sum(redCount) as red sum(blueCount) as blue dc(userid) as totalUsers
| fields + totalUsers red blue
我建议您先尝试搜索的第一行。如果有效,请运行前两行,然后运行3,等等。我设置好了你可以用那种方式测试它。另外,将yoursourcetype替换为您数据的相应源类型。