Splunk Search

Use Subsearch to insert commands

duesser
Path Finder

Hello,

I would like to use a subsearch to literally paste a command into the SPL e.g.:

 

 

| makeresults
[| makeresults
| eval test="|eval t1 = \"hello\""
| return $test]

 

 

and for it to be equivalent to

 

 

| makeresults
| eval t1 = "hello"

 

 

 

Is this possible?

Labels (1)
0 Karma
1 Solution

PickleRick
SplunkTrust
SplunkTrust

I should expect not.

PickleRick_0-1698313276886.png

 

View solution in original post

PickleRick
SplunkTrust
SplunkTrust

Do a quick test:

[ | makeresults | eval search="| makeresults" ]

If you look into the job log you'll see that while the internal search will get expanded to

Expanded index search = ([ | makeresults | eval search="| makeresults" ])

After the subsearch is evaluated and the result is returned to the outer search it will be treated as a string, with the pipe control character escaped

Expanded index search = (\| makeresults)

Which means that you will be searching for literal pipe character and "makeresults" word.

duesser
Path Finder

Yes I have seen this exactly. But is it possible to work around this in any way?

0 Karma

PickleRick
SplunkTrust
SplunkTrust

I should expect not.

PickleRick_0-1698313276886.png

 

duesser
Path Finder

I know that I can do

index=abc
         [
            | makeresults
            | addinfo
            | eval filter_t="earliest=".(info_min_time-60)." latest=".info_max_time
            | return filter_t
         ]

which literally becomes 

index=abc earliest=1698301592.0 latest=1698301792.0

 and I would like to use this behavior to dynamically define a command

0 Karma

gcusello
SplunkTrust
SplunkTrust

Hi @duesser,

pleae try this:

index=abc
         [
            | makeresults
            | addinfo
            | eval earliest=relative_time(info_min_time,"-60s"), latest=info_max_time
            | fields earliest latest
         ]

Ciao.

Giuseppe

0 Karma

duesser
Path Finder

I am sorry for the confusion, I updated the original question.

 

The idea is to dynamically create strings of eval commands in a sub search (depending on a lookup e.g.) and then applying these to the base search by literally putting the into the search command. I hope I could clarify this now.

0 Karma

gcusello
SplunkTrust
SplunkTrust

Hi @duesser ,

good for you, see next time!

Ciao and happy splunking

Giuseppe

P.S.: Karma Points are appreciated by all the contributors 😉

0 Karma

gcusello
SplunkTrust
SplunkTrust

HI @duesser,

when you use a subsearch, you run a search on the main search using the output (exactly the fields you have in return or in fields).

What's your requirement?

Ciao.

Giuseppe

0 Karma
Get Updates on the Splunk Community!

Introducing the Splunk Community Dashboard Challenge!

Welcome to Splunk Community Dashboard Challenge! This is your chance to showcase your skills in creating ...

Wondering How to Build Resiliency in the Cloud?

IT leaders are choosing Splunk Cloud as an ideal cloud transformation platform to drive business resilience,  ...

Updated Data Management and AWS GDI Inventory in Splunk Observability

We’re making some changes to Data Management and Infrastructure Inventory for AWS. The Data Management page, ...