Splunk Search
Highlighted

How to get the difference of two different fields?

Explorer

I have a log file that produces two fields - kernelpackets and kerneldrops. These values are updated every 5 minutes, and accumulate until the app is restarted. That is, each value is larger than the previous. I need to calculate the percent loss over that 5 minute interval. I want to be able to chart these values over time.

To do this

(kernel_drops(at T=0) - kernel_drops (T-5) / kernel_packets (T=0) - kernel_packets(T-5)) *100

I can use the delta function to get on of the values for on or the other but not both

index=data host="server_name"  source="/usr/local/var/log/suricata/stats.json" | stats count by _time,stats.capture.kernel_packets |delta  stats.capture.kernel_packets p=1 

How can I get the delta function to work on both parameters?

0 Karma
Highlighted

Re: How to get the difference of two different fields?

Super Champion

have you tried using the streamstats command?

index=data host="server_name"  source="/usr/local/var/log/suricata/stats.json" | stats count by _time,stats.capture.kernel_packets|sort 0 _time|streamstats window=1 current=f values(stats.capture.kernel_packets) as prevPacket values(_time) as prevTime|eval delta1=prevPacket-stats.capture.kernel_packets....

something like that for a starting point?

0 Karma
Highlighted

Re: How to get the difference of two different fields?

SplunkTrust
SplunkTrust

Try like this

index=data host="server_name"  source="/usr/local/var/log/suricata/stats.json"
| fields _time stats.capture.kernel_packets stats.capture.kernel_drops
| streamstats current=f window=1 values("stats.capture.kernel_packets") as prev_kernel_packets values("stats.capture.kernel_drops") as prev_kernel_drops
| eval percent_loss=round((prev_kernel_drops-'stats.capture.kernel_drops')*100/(prev_kernel_packets-'stats.capture.kernel_packets'),2)
| table _time percent_loss

View solution in original post

0 Karma
Highlighted

Re: How to get the difference of two different fields?

SplunkTrust
SplunkTrust

@somesoni2 - round

0 Karma
Highlighted

Re: How to get the difference of two different fields?

Explorer

Thanks!! Works perfectly. And yes, I found the round!!!!

0 Karma