Splunk Search
Highlighted

How to use 'OR' boolean in an eval expression?

Path Finder

We're combining many types of searches into one tabled alert. We create our own variables with an eval statement and pass log variables into these. On certain versions of Windows these log variables have different names (message vs name). So we're wondering how to have an 'OR' statement depending on which name we're given. Thanks.

For example, we have tried the following:

.... | eval "Event Description"=Message, name | table ... "Event Description"
.... | eval ("Event Description"=Message) OR ("Event Description"=name) | table ... "Event Description"
.... | eval "Event Description"=(Message) OR (name) | table ... "Event Description"
.... | eval "Event Description"=Message OR name | table ... "Event Description"

None of these seem to work. They usually give us malform eval expression errors.

0 Karma
Highlighted

Re: How to use 'OR' boolean in an eval expression?

Ultra Champion

Something in the spirit of - | eval your_value=if(message="Event Description" OR name="Event Description", "xxxx"," all others")

Highlighted

Re: How to use 'OR' boolean in an eval expression?

SplunkTrust
SplunkTrust
| eval "Event Description"=coalesce(Message, name)

The above will use Message if present, otherwise it will use name if present, and if neither are present the field will be null. Make sure the capitalization matches your system fields exactly.

View solution in original post

Highlighted

Re: How to use 'OR' boolean in an eval expression?

Ultra Champion

Beautiful thing !!!

Highlighted

Re: How to use 'OR' boolean in an eval expression?

Path Finder

This is more than what I was expecting. Thank you very much! Works very well.