I generate logline when starting processing 1 object and another logline when ready.
How to find logline1 without a logline2 with SPLUNK?
I have to generate a list of objects, for which I have a logline when starting processing the object, but for which I do not have a logline generated after processing the object.
Can this be done with SPLUNK and how much performance will this cost?
Thanks,
Albert
Try this ...
index=foo "ID=*" "processing" ("Start" OR "End")
| rex "ID=(?<IDNo>\d+)\s+(?<TypeRec>Start|End) processing"
| stats min(_time) as _time values(TypeRec) as TypeRec by IDNo
| where mvcount(TypeRec)<2
| where TypeRec="Start"
Like this:
Your Base Search Here
| streamstats count(eval(searchmatch("StringThatMatchesOnlyYourStartEventHereInSPL"))) AS sessionID
| eventstats count(eval(searchmatch("StringThatMatchesOnlyYourStopEventHereInSPL"))) AS numStopEvents
| search numStopEvents!=1
This shows sequences of events that have either 0 or more than 1 Stop Events.
You can replace searchmatch
calls with another function that might be easier for you such as match
(if you are good with RegEx
) or like
(if you are good with SQL
).
Before I forget to mention, I have to process at least 2.000.000 objects a day. So I will have 2M "start processing" and I have to find how many of those do not have an "end processing" in de logfile.
I Have 1 logfile.
when starting processing the object I write a log entry "2017-04-04 13:00:59 : ID=14; Start processing
When complete work on the object I write a log entry "2017-04-04 13:01:00 ; ID=14: End processing.
If something failes, the "end processing" line will not be generated.
File might look like:
2017-04-04 13:00:59 : ID=14; Start processing
2017-04-04 13:00:59 : ID=15; Start processing
2017-04-04 13:01:00 ; ID=14: End processing
2017-04-04 13:01:15 : ID=16; Start processing
2017-04-04 13:01:20 ; ID=16: End processing
processing ID 15 failed, so not line is being generated. That is what I have to find with SPLUNK.
Ofcourse, I will generated an error in the logfile but I have to prove that all start processing have an end processing. It is functional requirement.
Can you share some sample events?