For other intrepid developers, here is the approach I have worked out which seems to have worked pretty well. Again, event_status and event_name are my own fields. The results are a little more complex as well ... they show both the absolute counts as well as the percentages. Also, having the time controls on the inner search allowed me to create a dropdown on a dashboard that included a number of predefined selections for timing by creating a field that contains values like "earliest=-169h@h latest=-168h@h" which I can then insert as a simple variable like $previousTimeWindow$ in place of those fields in the inner query. <base query> | fields + event_name, event_status, _time | fields - _raw | stats count(eval(event_status=="SUCCESS")) as SuccessCount, count(eval(event_status=="FAILED")) as FailedCount by event_name | eval "Percent Success" = round(SuccessCount/(SuccessCount+FailedCount)*100, 1)."%" | eval ReportKey="Current" | append [ search <base query> earliest=-169h@h latest=-168h@h | fields + event_name, event_status, _time | fields - _raw | stats count(eval(event_status=="SUCCESS")) as SuccessCount, count(eval(event_status=="FAILED")) as FailedCount by event_name | eval "Percent Success" = round(SuccessCount/(SuccessCount+FailedCount)*100, 1)."%" | eval ReportKey="Previous"] | chart values(SuccessCount), values(FailedCount), values("Percent Success") by event_name, ReportKey | rename "values(FailedCount): Current" as "Current Failed", "values(FailedCount): Previous" as "Previous Failed", "values(Percent Success): Current" as "Current Success Rate", "values(Percent Success): Previous" as "Previous Success Rate", "values(SuccessCount): Current" as "Current Success", "values(SuccessCount): Previous" as "Previous Success", "event_name" as "Event Name" | fields "Event Name", "Current Success", "Current Failed", "Current Success Rate", "Previous Success", "Previous Failed", "Previous Success Rate"
... View more