2011-09-30 49 views
0

我想知道有多少用戶有藍色&其中有多少人對所有唯一身份用戶都有紅色?通過日誌中的matchin部分字符串獲取唯一計數

[2011-09-30 18:15:01:559 GMT+00:00][137D3B5A5F196F81A405858E6A5AA01F.maps-358-thread-1][com.abc.myaction.myfilter] INFO [email protected] userid=1234 
[2011-09-30 18:15:01:559 GMT+00:00][237D3B5A5F197F81A405858E6A5AA0WD.maps-158-thread1][com.abc.myaction.myfilter] INFO [email protected] userid=4235 
[2011-09-30 18:15:01:559 GMT+00:00][337D3B5A5F198F81A405858E6A5AA0GW.maps-258-thread-1][com.abc.myaction.myfilter] INFO [email protected] 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 = true或不。

因此,在上述情況下,輸出應該是:

沒有用紅色用戶= 1(注:237D3B5A5F198F81A405858E6A5AA09F不匹配任何東西,因此不計算在內,即使它的紅旗爲true)否用戶藍色= 2

這是可能的splunk?

回答

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,等等。我設置好了,這樣你就可以對它進行測試。另外,用你的數據的適當源類型替換你的源類型。