Splunk Search

Left join not returning values as expected.

yuvrajsharma_13
Explorer

I am joining two splunk query to capture the  values which is not present in subquery. 

Trying to find the account which opend today but not posted. But quary not retuning any values.

Let me know if we have other way to get the values ?

 

Query 1 :  Returns Account opened today. 

index=a  "digital account opened" | rename msg.requestID AccountID | table AccountID

Query 2 : Account posted today.

index=b "/api/posted" 200  | rex "GET /api/posted (?<accountID>\d+) HTTP 1.1" table AccountID

 

Final Query : 

index=a  "digital account opened" | rename msg.requestID AccountID | table AccountID

 | join type=left  AccountIDOpened [ search index=b "/api/posted" 200  | rex "GET /api/posted (?<accountID>\d+) HTTP 1.1" table AccountID ] | search AccountIDOpened =null | table _time,AccountIDOpened

 

Labels (2)
0 Karma
1 Solution

tscroggins
Champion

Hi @yuvrajsharma_13,

You're attempting to join both searches by a field named AccountIDOpened, which neither search includes.

Are you trying to return all results in the outer/left search that are not present in the inner/right search or vice versa?

Based on your description, you can find accounts that were opened but not posted by searching for opened account and excluding accounts that were posted using a subsearch:

index=a "digital account opened" NOT 
    [ search index=b "/api/posted" 200 
    | rex "GET /api/posted (?<requestID>\d+) HTTP 1.1" 
    | rename AccountID as msg.requestID
    | table msg.requestID ]

View solution in original post

tscroggins
Champion

Hi @yuvrajsharma_13,

You're attempting to join both searches by a field named AccountIDOpened, which neither search includes.

Are you trying to return all results in the outer/left search that are not present in the inner/right search or vice versa?

Based on your description, you can find accounts that were opened but not posted by searching for opened account and excluding accounts that were posted using a subsearch:

index=a "digital account opened" NOT 
    [ search index=b "/api/posted" 200 
    | rex "GET /api/posted (?<requestID>\d+) HTTP 1.1" 
    | rename AccountID as msg.requestID
    | table msg.requestID ]

yuvrajsharma_13
Explorer
0 Karma
Get Updates on the Splunk Community!

Unlock Database Monitoring with Splunk Observability Cloud

  In today’s fast-paced digital landscape, even minor database slowdowns can disrupt user experiences and ...

Purpose in Action: How Splunk Is Helping Power an Inclusive Future for All

At Cisco, purpose isn’t a tagline—it’s a commitment. Cisco’s FY25 Purpose Report outlines how the company is ...

[Upcoming Webinar] Demo Day: Transforming IT Operations with Splunk

Join us for a live Demo Day at the Cisco Store on January 21st 10:00am - 11:00am PST In the fast-paced world ...