Not sure if this is exactly what you are looking for but I think it is pretty close. I got this output by stringing together a couple of streamstats with window=<int> and reset_before=<cri...
See more...
Not sure if this is exactly what you are looking for but I think it is pretty close. I got this output by stringing together a couple of streamstats with window=<int> and reset_before=<criteria> parameters | sort 0 +Machine, +time
| streamstats
count as row
| eval
TimeStamp=strftime(time, "%m/%d/%Y %H:%M:%S")
| fields - _time
| fields + row, Machine, TimeStamp, time
| streamstats window=3
count as running_count,
min(time) as min_time,
max(time) as max_time
by Machine
| eval
seconds_diff='time'-'min_time',
duration_diff=tostring(seconds_diff, "duration")
| streamstats window=3 reset_before="("seconds_diff>300")"
count as running_count
by Machine
| eval
Occurrence=if(
'seconds_diff'<=300 AND 'running_count'==3,
"TRUE",
"FALSE"
)
| fields + row, Machine, TimeStamp, Occurrence Here is the full SPL I used to generate the screenshot (results may vary because of the use of relative_time()) | makeresults
| eval
Machine="machine 1",
time=relative_time(now(), "-2h@s")
| append
[
| makeresults
| eval
Machine="machine 1",
time=relative_time(now(), "-2h+18s@s")
]
| append
[
| makeresults
| eval
Machine="machine 1",
time=relative_time(now(), "-2h+34s@s")
]
| append
[
| makeresults
| eval
Machine="machine 2",
time=relative_time(now(), "+4d@d+20h@h+31m@m+48s@s")
]
| append
[
| makeresults
| eval
Machine="machine 1",
time=relative_time(now(), "-2h+52s@s")
]
| append
[
| makeresults
| eval
Machine="machine 2",
time=relative_time(now(), "+4d+5h+5m+2s")
]
| append
[
| makeresults
| eval
Machine="machine 1",
time=relative_time(now(), "-2h+302s@s")
]
| append
[
| makeresults
| eval
Machine="machine 1",
time=relative_time(now(), "+2d-5h+18s@s")
]
| append
[
| makeresults
| eval
Machine="machine 2",
time=relative_time(now(), "+4d+5h+18s@s")
]
| append
[
| makeresults
| eval
Machine="machine 2",
time=relative_time(now(), "+4d+5h+2m+1s")
]
| append
[
| makeresults
| eval
Machine="machine 2",
time=relative_time(now(), "+4d+5h+2m+34s")
]
| append
[
| makeresults
| eval
Machine="machine 2",
time=relative_time(now(), "+4d+5h+4m-12s")
]
| append
[
| makeresults
| eval
Machine="machine 2",
time=relative_time(now(), "+4d@d+20h@h+43m@m+5s@s")
]
| sort 0 +Machine, +time
| streamstats
count as row
| eval
TimeStamp=strftime(time, "%m/%d/%Y %H:%M:%S")
| fields - _time
| fields + row, Machine, TimeStamp, time
| streamstats window=3
count as running_count,
min(time) as min_time,
max(time) as max_time
by Machine
| eval
seconds_diff='time'-'min_time',
duration_diff=tostring(seconds_diff, "duration")
| streamstats window=3 reset_before="("seconds_diff>300")"
count as running_count
by Machine
| eval
Occurrence=if(
'seconds_diff'<=300 AND 'running_count'==3,
"TRUE",
"FALSE"
)
| fields + row, Machine, TimeStamp, Occurrence