Splunk Search

Getting first match field in a event

apand84
Engager

In a service log different API being invoked each API start with ~( like ~getenrolled, ~enroll, ~submit) so is there any way to extract first API being called by rex

i tried (~\w+){1} but it matching with all called API .

Tags (1)
0 Karma

woodcock
Esteemed Legend

Like this:

... | rex "~(?<FirstAPIName>\w+)"
0 Karma

apand84
Engager

Unfortunately it will match all called api (started with ~+API name )
I wanted to extract first matched api which is the main api call subsequent are sub api in service log .

0 Karma

woodcock
Esteemed Legend

Then this:

 ... | rex max_match=1 "~(?<FirstAPIName>\w+)"
0 Karma

niketn
Legend

Based on the sample data provided please try the following rex command with max_match=1 (which is by default):

|  makeresults
|  eval _raw="~getenrolled, ~enroll, ~submit, ~somethingelse, ~somethingnew"
|  rex  "~(?<FirstAPIName>[^,]+)," max_match=1

Alternatively, you can also use caret sign ( ^ ) if you want to extract required API Name only from beginning of raw data (depends on the data, if this does not work please provide sample raw data)

|  makeresults
|  eval _raw="~getenrolled, ~enroll, ~submit, ~somethingelse, ~somethingnew"
|  rex  "^~(?<FirstAPIName>[^,]+),"

PS: First two pipes with makeresults and eval are used to generate mock data for testing regular expression.

____________________________________________
| makeresults | eval message= "Happy Splunking!!!"
Get Updates on the Splunk Community!

Webinar Recap | Revolutionizing IT Operations: The Transformative Power of AI and ML ...

The Transformative Power of AI and ML in Enhancing Observability   In the realm of IT operations, the ...

.conf24 | Registration Open!

Hello, hello! I come bearing good news: Registration for .conf24 is now open!   conf is Splunk’s rad annual ...

ICYMI - Check out the latest releases of Splunk Edge Processor

Splunk is pleased to announce the latest enhancements to Splunk Edge Processor.  HEC Receiver authorization ...