DST update for EventX Trilogy for Seq now available!

While I was investigating a case where Event Schedule for Seq had duplicate multi-log events occurring, I noticed a Daylight Savings  Time issue with the unit tests, which was evident due to an upcoming DST changeover here in Australia.

It was readily apparent, of course, that with their shared DNA, the Event Timeout, Event Threshold, and Event Schedule apps would all have the same issue. There was a mismatch between the evaluation of dates with the difference in time resulting from the DST change.

"Luckily", my NBN connection was down pending a visit from NBN Co, and with relatively poor mobile data speeds in my area, I was able to spend some time on the issue to ensure that the upcoming DST changeover would correctly evaluate times. 

As part of the fix, I added a new Dates.ParseInterval and Dates.UtcParseInterval to Lurgle.Dates. These aren't anything too special - they're essentially just a DateTime.ParseExact that simplifies the overall UtcRollover processing.

The aforementioned duplicate multi-log issue turned out to be a result of the logging of events taking greater than the 1 second interval between evaluation, and was readily addressed by adding a flag while logging was occurring.

Event Threshold has also now been updated to include the Handlebars implementation that was previously added to Event Timeout and Event Schedule. This was done fairly quickly as an adjunct part of the bug fixing process, to bring the codebase up to a similar level, but should be functional without regressions. The Handlebars values that can be used for Event Threshold are similar to Event Timeout, and are as follows:

            var payload = (IDictionary<string, object>)ToDynamic(new Dictionary<string, object>
            {
                { "AppName", config.AppName },
                { "TimeNow", DateTime.Now.ToLongTimeString() },
                { "DateNowLong", DateTime.Now.ToLongDateString() },
                { "DateNowShort", DateTime.Now.ToShortDateString() },
                { "DateTimeNow", DateTime.Now.ToString("F") },
                { "StartTime", counters.StartTime.ToString("F") },
                { "EndTime", counters.EndTime.ToString("F") },
                { "Threshold", config.ThresholdInterval.TotalSeconds },
                { "ThresholdMins", config.ThresholdInterval.TotalMinutes.ToString("N2") },
                { "ThresholdHours", config.ThresholdInterval.TotalHours.ToString("N2") },
                { "RepeatThreshold", config.RepeatThreshold },
                { "SuppressTime", config.SuppressionTime.TotalSeconds },
                { "SuppressTimeMins", config.SuppressionTime.TotalMinutes.ToString("N2") },
                { "SuppressTimeHours", config.SuppressionTime.TotalHours.ToString("N2") },
                { "RepeatSuppressTime", config.SuppressionTime.TotalSeconds },
                { "RepeatSuppressTimeMins", config.RepeatThresholdSuppress.TotalMinutes.ToString("N2") },
                { "RepeatSuppressTimeHours", config.RepeatThresholdSuppress.TotalHours.ToString("N2") },
                { "Tags", string.Join(",", config.Tags) },
                { "Responders", config.Responders ?? "" },
                { "Priority", config.Priority ?? "" },
                { "ProjectKey", config.ProjectKey ?? "" },
                { "DueDate", config.DueDate ?? "" },
                { "InitialTimeEstimate", config.InitialTimeEstimate ?? "" },
                { "RemainingTimeEstimate", config.RemainingTimeEstimate ?? "" }
            });

 

The resulting updates should be live now!

Note - Current builds of Seq have a bug with the Nuget v2 API affecting update of Event Timeout. The workaround is to either manually update Event Timeout to the current build via the Manage page for the app, or change your Nuget feed settings.

 

Seq.App.EventTimeout
Event Timeout for Seq Latest Version

Event Timeout for Seq Total Downloads

Event Timeout for Seq License
Seq.App.EventThreshold
Event Threshold for Seq Latest Version

Event Threshold for Seq Total Downloads

Event Threshold for Seq License
Seq.App.EventSchedule
Event Schedule for Seq Latest Version

Event Schedule for Seq Total Downloads

Event Schedule for Seq License
Lurgle.Dates
Lurgle.Dates Latest Version

Lurgle.Dates Total Downloads

Lurgle.Dates License

Comments

You may also like:

Lurgle.Logging v1.2.4 Update - Rethinking usage patterns

A while back I updated Lurgle.Logging to support new logging patterns. I've sat on it for a while, but some aspects of this weren't as well thought through as they could have been. Specifically, the idea of passing: Log.Error(ex, "Oh no! An error! {Message}", Logging.NewCorrelationId(), args: ex.Message); Log.Error(ex, "Oh no!...