Splunk Enterprise

Query for subtracting the timechart span results of two queries

shaycoshay
Engager

Hello! I'm new to splunk so any help is much appreciated. I have two queries of different index. 

Query1: index=rdc sourcetype=sellers-marketplace-api-prod custom_data | search "custom_data.result.id"="*" | dedup custom_data.result.id | timechart span=1h count

 shaycoshay_1-1702511686857.png

Query2: index=leads host="pa*" seller_summary | spath input="Data" | search "0.lead.form.page_name"="seller_summary" | dedup 0.id | timechart span=1h count

shaycoshay_0-1702511665851.png

I would like to write a query that executes Query1-Query2 for the counts in each hour. It should be in the same format. Thank you!!

0 Karma
1 Solution

dtburrows3
Builder

Using a multisearch command may be useful here to help standardize some fields before piping the two datasets into a timechart command.

Something like this I think should work.

| multisearch
    [
        | search index=rdc sourcetype=sellers-marketplace-api-prod "custom_data.result.id"="*"
            | fields + _time, index, "custom_data.result.id"
        ]
    [
        | search index=leads host="pa*" seller_summary
            | spath input="Data" 
            | search "0.lead.form.page_name"="seller_summary"
            | fields + _time, index, "0.id"
        ]
    | eval
        identifier=coalesce('custom_data.result.id', '0.id')
    | dedup index, identifier
    | timechart span=1h
        count as count
            by index
    | eval
        diff='leads'-'rdc'

 
Tried to replicate on my local instance with some similarly structured datasets and think it works out.
Resulting dataset should look something like this. (But with your indexes of course)

dtburrows3_0-1702516353818.png

 

View solution in original post

dtburrows3
Builder

Using a multisearch command may be useful here to help standardize some fields before piping the two datasets into a timechart command.

Something like this I think should work.

| multisearch
    [
        | search index=rdc sourcetype=sellers-marketplace-api-prod "custom_data.result.id"="*"
            | fields + _time, index, "custom_data.result.id"
        ]
    [
        | search index=leads host="pa*" seller_summary
            | spath input="Data" 
            | search "0.lead.form.page_name"="seller_summary"
            | fields + _time, index, "0.id"
        ]
    | eval
        identifier=coalesce('custom_data.result.id', '0.id')
    | dedup index, identifier
    | timechart span=1h
        count as count
            by index
    | eval
        diff='leads'-'rdc'

 
Tried to replicate on my local instance with some similarly structured datasets and think it works out.
Resulting dataset should look something like this. (But with your indexes of course)

dtburrows3_0-1702516353818.png

 

richgalloway
SplunkTrust
SplunkTrust

It may not be the most efficient method, but this should get you started.

index=rdc sourcetype=sellers-marketplace-api-prod custom_data 
| search "custom_data.result.id"="*" 
| dedup custom_data.result.id | timechart span=1h count as count1
| append [ search index=leads host="pa*" seller_summary 
  | spath input="Data" 
  | search "0.lead.form.page_name"="seller_summary" 
  | dedup 0.id 
  | timechart span=1h count as count2
| stats values(*) as * by _time
| eval diff = count1 - count2
---
If this reply helps you, Karma would be appreciated.
0 Karma
Get Updates on the Splunk Community!

New Year, New Changes for Splunk Certifications

As we embrace a new year, we’re making a small but important update to the Splunk Certification ...

Stay Connected: Your Guide to January Tech Talks, Office Hours, and Webinars!

What are Community Office Hours? Community Office Hours is an interactive 60-minute Zoom series where ...

[Puzzles] Solve, Learn, Repeat: Reprocessing XML into Fixed-Length Events

This challenge was first posted on Slack #puzzles channelFor a previous puzzle, I needed a set of fixed-length ...