Splunk Search

How do I edit my search to sort performance logs from one set of servers into one category, and everything else into another category?

ShagVT
Path Finder

I'm trying to write a search that will look at performance logs for my servers, putting the data from one set of servers into one bin, and everything else into a second bin.

Here's my attempt:

index=myindex sourcetype=performance_file ExecutionTime | eval category=(host="host1" OR host="host2" OR host="host3" OR host="host4", "SpecialServers", host!="host1" AND host!="host2" AND host!="host3" AND host!="host4", "OtherServers") | timechart span=1m avg(resptime) by category

I'm surprised by the error I'm getting:

Error in 'eval' command: The expression is malformed. Expected ).

Am I on the right track at all? I'm a bit of a rookie at advanced queries like this.

Tags (2)
0 Karma
1 Solution

MattZerfas
Communicator

Try This

index=myindex sourcetype=performance_file ExecutionTime | eval category=if(host="host1" OR host="host2" OR host="host3" OR host="host4", "SpecialServers", "OtherServers") | timechart span=1m avg(resptime) by category

You were on the right track but I just modified your eval to use an if statement.

Here is the link with the syntax for if statements and many others.
http://docs.splunk.com/Documentation/Splunk/6.1/SearchReference/Commonevalfunctions

View solution in original post

javiergn
SplunkTrust
SplunkTrust

You forgot the "case" and the double =

eval category = case(host ...

take a look at example 11 here: http://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Eval

0 Karma

MattZerfas
Communicator

No need for a case if he just wants 2 groups of items. If he wanted 3 or more then a case statement would work better than an if statement.

0 Karma

javiergn
SplunkTrust
SplunkTrust

True. I didn't notice there were just two groups. Just saw a long eval and "assumed" there were more.

0 Karma

MattZerfas
Communicator

Yup I did the same thing until I read through his query 🙂 All good.

0 Karma

MattZerfas
Communicator

Try This

index=myindex sourcetype=performance_file ExecutionTime | eval category=if(host="host1" OR host="host2" OR host="host3" OR host="host4", "SpecialServers", "OtherServers") | timechart span=1m avg(resptime) by category

You were on the right track but I just modified your eval to use an if statement.

Here is the link with the syntax for if statements and many others.
http://docs.splunk.com/Documentation/Splunk/6.1/SearchReference/Commonevalfunctions

Get Updates on the Splunk Community!

Welcome to the Splunk Community!

(view in My Videos) We're so glad you're here! The Splunk Community is place to connect, learn, give back, and ...

Tech Talk | Elevating Digital Service Excellence: The Synergy of Splunk RUM & APM

Elevating Digital Service Excellence: The Synergy of Real User Monitoring and Application Performance ...

Adoption of RUM and APM at Splunk

    Unleash the power of Splunk Observability   Watch Now In this can't miss Tech Talk! The Splunk Growth ...