Suppose there are 5 events in raw text in Splunk as below:
"host":"111.123.23.34","level":1,"msg":"cricket score : 10","time":"2023-07-11T17:28:33.265Z"
"host":"111.123.23.34","level":2,"msg":"cricket score : 20","time":"2023-07-11T17:28:33.265Z"
"host":"111.123.23.34","level":3,"msg":"cricket score : 30","time":"2023-07-11T17:28:33.265Z"
"host":"111.123.23.34","level":4,"msg":"cricket score : 40","time":"2023-07-11T17:28:33.265Z"
"host":"111.123.23.34","level"5,"msg":"cricket score : 50","time":"2023-07-11T17:28:33.265Z"
So I need to create a Splunk query to get output as below.
Total Number of events (sum of all events)
5
Total Score (sum of all cricket score)
150
Request your help for the same.
Alternatively, is the illustrated raw text the full _raw events? They look too much like part of valid JSON objects. If raw events are in JSON, you should have fields host, msg, and so on. If so, using fields instead of _raw would be more efficient, like
| eval cricket_score = mvindex(split(msg, ": "), 1)
| stats count sum(cricket_score) as total_score
If msg field is not available, using extract (aka kv) might also be more efficient than rex, like
| kv pairdelim="," kvdelim=":"
| eval cricket_score = mvindex(split(msg, ": "), 1)
| stats count sum(cricket_score) as total_score
thanks
| rex "cricket\sscore\s*:\s*(?<score>\d+)"
| stats count sum(score) as cricketscore
Thanks