Archive

Splunk HELP - How to stats based on each value in array field

Explorer

Hi Team,

I have several fields which values are array. For example,

event1: ktf2="[BackgroundCriteria,ProfileCriteria]"
event2: ktf2="[BackgroundCriteria,ProfileCriteria, keyword]"
event3: ktf2="[Rating_Criteria]"

Question: How to stats based on the each element of ktf2 value??

My Expected Stats Result is:

Criteria, Count
BackgroundCriteria, 2
Profile
Criteria, 2
keyword, 1
Rating_Criteria, 1

1 Solution

Esteemed Legend

The stats command is multi-value friendly as-is so just do this:

... | stats count BY ktf2

Now, assuming that the arrays are exactly as you posted and not already multi-valued fields, you can do this:

| makeresults 
| eval ktf2="[Background_Criteria,Profile_Criteria] [Background_Criteria,Profile_Criteria,keyword] [Rating_Criteria]"
| makemv ktf2
| mvexpand ktf2

| rename COMMENT AS "Everything above generates sample event data; everything below is your solution"

| rex field=ktf2 mode=sed "s/[\[\]]//g"
| eval ktf2=split(ktf2, ",")
| stats count BY ktf2

View solution in original post

0 Karma

Esteemed Legend

The stats command is multi-value friendly as-is so just do this:

... | stats count BY ktf2

Now, assuming that the arrays are exactly as you posted and not already multi-valued fields, you can do this:

| makeresults 
| eval ktf2="[Background_Criteria,Profile_Criteria] [Background_Criteria,Profile_Criteria,keyword] [Rating_Criteria]"
| makemv ktf2
| mvexpand ktf2

| rename COMMENT AS "Everything above generates sample event data; everything below is your solution"

| rex field=ktf2 mode=sed "s/[\[\]]//g"
| eval ktf2=split(ktf2, ",")
| stats count BY ktf2

View solution in original post

0 Karma