Splunk Search

How to get filtered data with spath?

developer_de
New Member

I am trying to build stats for a set of JSON data which looks like this:

{
   "ts":1527498793267,
   "version":"1.12.7",
   "data":{
      "myList":[
         {
            "id":"180528_090203",
            "nativeRequestReceived":1,
            "nativeResponseSent":1
         },
         {
            "id":"180528_090129",
            "nativeRequestReceived":1,
            "nativeResponseSent":1
         }
      ],
      "freemem":6534152192
   },
   "time":"2018-05-28T09:13:13.267Z",
   "v":0
}

I am using following splunk command to build stats table:

spath path=data.myList{} output=myList | spath input=myList | stats sum(nativeRequestReceived) sum(nativeResponseSent) by id

I use sum here because there will be multiple JSON objects like the one written above and I would like to add all nativeRequestReceived and nativeResponseSent for each id and group them by id. It can be seen clearly that there are 2 different ids each with 1 nativeRequestReceived. But the output looks like this. It ignores one of the ids. Can someone help me in clarifying what went wrong here?

id                sum(nativeRequestReceived)     sum(nativeResponseSent)
180528_090203           1                             1

Thanks

0 Karma

ansif
Motivator

Hi,

Have you tried below answer? Accept if works.

Thanks

0 Karma

ansif
Motivator
| makeresults |eval _raw="{
    \"ts\":1527498793267,
    \"version\":\"1.12.7\",
    \"data\":{
       \"myList\":[
          {
             \"id\":\"180528_090203\",
             \"nativeRequestReceived\":1,
             \"nativeResponseSent\":1
          },
          {
             \"id\":\"180528_090129\",
             \"nativeRequestReceived\":1,
             \"nativeResponseSent\":1
          }
       ],
       \"freemem\":6534152192
    },
    \"time\":\"2018-05-28T09:13:13.267Z\",
    \"v\":0
 }"|spath output=id path=data.myList{}.id
| spath output=nativeRequestReceived path=data.myList{}.nativeRequestReceived
| spath output=nativeResponseSent path=data.myList{}.nativeResponseSent| stats sum(nativeRequestReceived) sum(nativeResponseSent) by id
0 Karma
Get Updates on the Splunk Community!

Index This | What did the zero say to the eight?

June 2025 Edition Hayyy Splunk Education Enthusiasts and the Eternally Curious!  We’re back with this month’s ...

Splunk Observability Cloud's AI Assistant in Action Series: Onboarding New Hires & ...

This is the fifth post in the Splunk Observability Cloud’s AI Assistant in Action series that digs into how to ...

Now Playing: Splunk Education Summer Learning Premieres

It’s premiere season, and Splunk Education is rolling out new releases you won’t want to miss. Whether you’re ...