Splunk Search

How to search the time difference between transactions?

ppatkar
Path Finder

I have three statements in my log file for each transaction like below:

index=abc*  source="abc.log" 2410286283_b310-3358a1229709 INFO  

22/Jun/2016 13:52:21.318 [ Thread-2 ] INFO : ResponsePoll    - [STEP_ID = checkStatus ]{ message = "Status from server" , messageId = 2410286283_b310-3358a1229709, ResponseStatus = SUCCESS }
22/Jun/2016 13:52:20.957 [ cacher-0 ] INFO : cacher    - Cached [AppResponse{messageId='2410286283_b310-3358a1229709',  responseSubscriberName='client01'}]
22/Jun/2016 13:52:05.191 [ sender-3 ] INFO : MessageService    - [RequestStatus=Sent, Request=SuperVO{sessionId='2410286283_b310-3358a1229709', responseSubscriberName='client01'}]

I need to calculate the time between the statements having keyword ResponseStatus = SUCCESS and RequestStatus=Sent for each of the ID's like 2410286283_b310-3358a1229709.
In the above case, I should get a result as:

2410286283_b310-3358a1229709   00:00:16:127

I would like to do this for various ID's in my logs through Splunk.
Due to different naming standards followed in request & response for the ID, I am unable to think of a way to do this.

Any insights or help appreciated.

0 Karma
1 Solution

sundareshr
Legend

Try this

index=abc* source="abc.log" ResponseStatus="SUCCESS" OR ResponseStatus="Sent" | eval sid=coalesce(sessionId, messageId) | streamstats window=1 current=f earliest(_time) as start by sid | eval duration=tostring(_time-start, "duration")

View solution in original post

0 Karma

sundareshr
Legend

Try this

index=abc* source="abc.log" ResponseStatus="SUCCESS" OR ResponseStatus="Sent" | eval sid=coalesce(sessionId, messageId) | streamstats window=1 current=f earliest(_time) as start by sid | eval duration=tostring(_time-start, "duration")
0 Karma

ppatkar
Path Finder

@sundareshr : Thanks for your help ! I slightly modified your answer & got it to work

index=abc* source="abc.log"  "ResponseStatus = SUCCESS" OR "RequestStatus=Sent"  | eval sid=coalesce(replace(sessionId,"'",""), messageId) |  stats range(_time) as duration by sid 
Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

Your Feedback. Our Roadmap. Visit the PX Feedback Booth at .conf26

You use Splunk every day, come and help shape what's next.  Save Your Seat: Product-Focused Sessions at ...

Agentic SOC Triage: Investigating Splunk ES Notables with MCP Server and a Local LLM

The Problem: Too Many Alerts, Too Little Context Security operations teams running Splunk Enterprise Security ...

Painting a Clearer Picture: Creating Cross-Domain Visibility with AI Canvas

Watch Now Painting a Clearer Picture: Creating Cross-Domain Visibility with AI Canvas     Do you ever feel ...