[hobbit] Alert rules

Henrik Stoerner henrik at hswn.dk
Wed Jun 29 22:20:02 CEST 2005


On Wed, Jun 29, 2005 at 08:55:31PM +0200, Henrik Stoerner wrote:
> On Wed, Jun 29, 2005 at 01:27:45PM -0400, Killenbeck, Alan wrote:
> 
> > I've been asked to try to make alerts only send 2 emals, at most, and
> > still send a RECOVERED message when things recover.
> 
> It's a bug. Will fix.

I think this patch should do it.

--- hobbitd/do_alert.c	2005/06/06 09:27:07	1.69
+++ hobbitd/do_alert.c	2005/06/29 18:58:54
@@ -960,20 +960,26 @@
 	/* At this point, we know the configuration may result in an alert. */
 	if (anymatch) (*anymatch)++;
 
-	duration = (time(NULL) - alert->eventstart);
-	if (crit && crit->minduration && (duration < crit->minduration)) { 
-		traceprintf("Failed '%s' (min. duration %d<%d)\n", cfline, duration, crit->minduration);
-		if (!printmode) return 0; 
-	}
+	/* 
+	 * Time checks should be done on real paging messages only. 
+	 * Not on recovery- or notify-messages.
+	 */
+	if (alert->state == A_PAGING) {
+		duration = (time(NULL) - alert->eventstart);
+		if (crit && crit->minduration && (duration < crit->minduration)) { 
+			traceprintf("Failed '%s' (min. duration %d<%d)\n", cfline, duration, crit->minduration);
+			if (!printmode) return 0; 
+		}
 
-	if (crit && crit->maxduration && (duration > crit->maxduration)) { 
-		traceprintf("Failed '%s' (max. duration %d>%d)\n", cfline, duration, crit->maxduration);
-		if (!printmode) return 0; 
-	}
+		if (crit && crit->maxduration && (duration > crit->maxduration)) { 
+			traceprintf("Failed '%s' (max. duration %d>%d)\n", cfline, duration, crit->maxduration);
+			if (!printmode) return 0; 
+		}
 
-	if (crit && crit->timespec && !timematch(crit->timespec)) { 
-		traceprintf("Failed '%s' (time criteria)\n", cfline);
-		if (!printmode) return 0; 
+		if (crit && crit->timespec && !timematch(crit->timespec)) { 
+			traceprintf("Failed '%s' (time criteria)\n", cfline);
+			if (!printmode) return 0; 
+		}
 	}
 
 	/* Check color. For RECOVERED messages, this holds the color of the alert, not the recovery state */



More information about the Xymon mailing list