Try this:
index="logs" process=beamCommonProcess
"Transitioned to Error State" OR "SET_RANGE activity requested for beam supply point" OR "DISABLE_BEAM activity is complete" OR "Timeslice:"
| transaction startswith="SET_RANGE activity requested for beam supply point" endswith="DISABLE_BEAM activity is complete"
| search "Transitioned to Error State"
| rex "\sNECU Error: \[0x\d+\].*?Timeslice: (?<necu_timeslice>\d+)"
| rex "\sFCU Error: \[0x\d+\].*?Timeslice: (?<fcu_timeslice>\d+)"
| rex "\sRCU Error: \[0x\d+\].*?Timeslice: (?<rcu_timeslice>\d+)\sSubmap: \d+\s*\((?<rcu_msg>.*?)\)"
| rex "\sSGCU Error: \[0x\d+\].*?Timeslice: (?<sgcu_timeslice>\d+)\sSubmap: \d+\s*\((?<sgcu_msg>.*?)\)"
| eval minTS = min(necu_timeslice,fcu_timeslice,rcu_timeslice,sgcu_timeslice)
| eval output = case(isnull(minTS),"TimeoutEnablingBeam",
necu_timeslice=fcu_timeslice and fcu_timeslice=rcu_timeslice and rcu_timeslice=sgcu_timeslice,"TSS Enable",
minTS==necu_timeslice,necu_msg,
minTS==fcu_timeslice,fcu_msg,
minTS==rcu_timeslice,rcu_msg,
minTS==sgcu_timeslice,sgcu_msg,
1==1,"Unknown")
| eval minTS = if(isnull(minTS), "No Timeslice", minTS)
| table _time minTS output
| sort _time
Note that the case statement stops when it finds the first match. So I put the test for "no timeslice" up front, followed by the test for "timeout enabling Beam." I also moved the eval for minTS to after the case statement.
... View more