Calculating timeouts with Event Timeout for Seq

We use quite a number of Event Timeout instances in our Seq environment, to detect processes that have not completed in time. The nature of the Seq.App.EventTimeout implementation is one that relies on a timeout in seconds, and this can result in keeping track of quite a few different calculations.

If, for example, you have a process that starts at 4:00am and should be finished by 8:00am at latest, you might implement an Event Timeout instance that starts at 4:00am, ends at 9:00am, and has a 14,400 second timeout (that is, 4 hours * 3600 seconds). The added hour for the end time allows for the timeout errors and suppression intervals. 

What if, like us, you have a number of these configured and want to shift them around, such as pushing the timeout and end time back 15 minutes? Easy enough for one, but 10 or 20 might send you cross-eyed trying to keep track of each of them.

This is fairly easily handled with a simple spreadsheet.

Calculating changes in Event Timeouts

This is fairly straightforward - enter your Start Time, old timeout target (in hours and minutes), and new timeout target (in hours and minutes). The spreadsheet then derives:

  • the old timeout in seconds (=(C3-B3) * 86400)
  • the new timeout in seconds (=(D3-B3)*86400)
  • an expression of the timeout duration in hours and minutes (=D3-B3)
  • and a new end time based on allowing 1 hour after the timeout (=D3+(60/1440))

with some conditional formatting applied so you can see which settings will change.

I found this helpful both for keeping track of my changes, and for documentation as well.  You can see the new timeout settings below:

Translating the spreadsheet to Event Timeout instance settings

I've uploaded a sample spreadsheet to Github for convenience!



You may also like:

Lurgle.Alerting - a standardised FluentEmail implementation with extra goodies!

Another Lurgle Around the time that I tackled my original Serilog logging implementation, I also looked at our email alerting. Emails can be used for a variety of reasons, and it's not uncommon that they are sent as a simple string that concatenates or formats variables. In this scenario, the...

Event Timeout - A super powered event monitoring app for Seq

"Something hasn't happened!" My workplace has quite a number of disparate applications and scripts that drive critical SLAs. Historically, these were managed by exception and emailing errors to various mailboxes. This is a fairly poor approach to managing SLAs, since it is reliant on a human factor - someone has...

Lurgle.Logging - a standardised Serilog implementation with extra goodies!

Logging is important Logging is a really important, oft-neglected, aspect of business applications. I can't state that enough. If you don't have good logging, you can't troubleshoot and debug problems, and you have little chance of seeing what's actually going on in your enterprise. In Structured Logging with Seq and Serilog,...