Splunk Search

Not able to map 2 different type of events

nilbak1
Communicator

I have following below scenario

Different stages of orders placed happens in below sequence

  1. order-process started ---- this event happens on different hosts say around 15 hosts -- say it happens for 800 different order IDs
  2. orders placed ---- while this event happens only on 1 host ( which is other than those 15 hosts -- say it happens on 780 order IDs

Common thing among both events is order ID.

Now I want to find out the ordersplaced (2) by those different 15 hosts.
i.e 780 orders placed on those 15 hosts.

But I am not able to map this. Can someone help ?

0 Karma
1 Solution

niketn
Legend

@nilbak1 you should better use stats for such correlations rather than join. With stats you can perform any type of join depending on your use case and correlation field/s.
Based on the minimal details in the question I can grasp that you need to correlate two events started and placed which for the same order may happen on two different hosts and correlation key is the order id. After correlation you need the host from which order started as well.

Please try out following run anywhere example which has four orders created i.e. order1,order2,order3,order4 and only two orders placed i.e. order1 and order3.
Commands from | makeresults till | eval are used to generate sample data as per the question.
The stats by order_id is used for correlation and first(host) as started_host gives the host which started the order as per the question. The filter search types IN ("started","placed") ensures the inner join i.e. for order_ids correlated, the events should come for both types i.e. started and placed.

| makeresults
| eval data="started,order1,host1;started,order2,host1;started,order3,host2;started,order4,host3;placed,order1,host2;placed,order3,host1"
| makemv data delim=";"
| mvexpand data
| makemv data delim=","
| eval type=mvindex(data,0),order_id=mvindex(data,1),host=mvindex(data,2)
| stats values(type) as types first(host) as started_host last(host) as placed_host by order_id
| search types IN ("started","placed")

Please try out and confirm!

____________________________________________
| makeresults | eval message= "Happy Splunking!!!"

View solution in original post

0 Karma

niketn
Legend

@nilbak1 you should better use stats for such correlations rather than join. With stats you can perform any type of join depending on your use case and correlation field/s.
Based on the minimal details in the question I can grasp that you need to correlate two events started and placed which for the same order may happen on two different hosts and correlation key is the order id. After correlation you need the host from which order started as well.

Please try out following run anywhere example which has four orders created i.e. order1,order2,order3,order4 and only two orders placed i.e. order1 and order3.
Commands from | makeresults till | eval are used to generate sample data as per the question.
The stats by order_id is used for correlation and first(host) as started_host gives the host which started the order as per the question. The filter search types IN ("started","placed") ensures the inner join i.e. for order_ids correlated, the events should come for both types i.e. started and placed.

| makeresults
| eval data="started,order1,host1;started,order2,host1;started,order3,host2;started,order4,host3;placed,order1,host2;placed,order3,host1"
| makemv data delim=";"
| mvexpand data
| makemv data delim=","
| eval type=mvindex(data,0),order_id=mvindex(data,1),host=mvindex(data,2)
| stats values(type) as types first(host) as started_host last(host) as placed_host by order_id
| search types IN ("started","placed")

Please try out and confirm!

____________________________________________
| makeresults | eval message= "Happy Splunking!!!"
0 Karma

nilbak1
Communicator

Thanks @niketnilay.
This worked perfectly 🙂

0 Karma

nilbak1
Communicator

@niketnilay Can you help ?
I tried doing this with inner join but it didn't helped.

0 Karma
Get Updates on the Splunk Community!

ICYMI - Check out the latest releases of Splunk Edge Processor

Splunk is pleased to announce the latest enhancements to Splunk Edge Processor.  HEC Receiver authorization ...

Introducing the 2024 SplunkTrust!

Hello, Splunk Community! We are beyond thrilled to announce our newest group of SplunkTrust members!  The ...

Introducing the 2024 Splunk MVPs!

We are excited to announce the 2024 cohort of the Splunk MVP program. Splunk MVPs are passionate members of ...