Splunk Search

Extract last field from pair of lines in a log file

smurf4568
New Member

Data looks like this

# grep 28969 request.log
22/Jul/2016:15:09:54 +0200 [28969] -> GET /libs/granite/csrf/token.json HTTP/1.1
22/Jul/2016:15:09:54 +0200 [28969] <- 200 application/json 4ms

[xxxxxx] is the common (field extracted as RequestID)

lines where -> GET exist, I want to return the URL (field extracted as URL)
lines where <- [0-9][0-9][0-9] is present, I want to return just the final field (4ms) as RequestTime

Result should look like

28969 /libs/granite/csrf/token.json 4ms

0 Karma

sundareshr
Legend

Or this

... | rex "GET\s(?<URL>[^\s]+)" | rex "(?<RequestTime>\w+)$" | stats values(URL) as URL values(RequestTime) as RequestTime by RequestID
0 Karma

somesoni2
Revered Legend

Try like this

your base search | rex "\]\s(-\>\s+GET+\s(?<URL>[^\s]+)" | rex "\]\s(-\>\s+([0]{3})+\s([^\s]+)(?<RequestTime>\w+)" | stats values(URL) as URL values(RequestTime) as RequestTime by RequestID
0 Karma
Get Updates on the Splunk Community!

[Puzzles] Solve, Learn, Repeat: Dynamic formatting from XML events

This challenge was first posted on Slack #puzzles channelFor a previous puzzle, I needed a set of fixed-length ...

Enter the Agentic Era with Splunk AI Assistant for SPL 1.4

  &#x1f680; Your data just got a serious AI upgrade — are you ready? Say hello to the Agentic Era with the ...

Stronger Security with Federated Search for S3, GCP SQL & Australian Threat ...

Splunk Lantern is a Splunk customer success center that provides advice from Splunk experts on valuable data ...