summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: e9a9482)
raw | patch | inline | side by side (parent: e9a9482)
author | Andres J. Diaz <ajdiaz@connectical.com> | |
Sun, 13 Jun 2010 10:07:37 +0000 (12:07 +0200) | ||
committer | Andres J. Diaz <ajdiaz@connectical.com> | |
Sun, 13 Jun 2010 10:07:37 +0000 (12:07 +0200) |
By default all thresholds are interesting, so a missing notification will
dispatched on missing values. Setting the Interesting option to false avoid
to send this notification even if some values are missing.
dispatched on missing values. Setting the Interesting option to false avoid
to send this notification even if some values are missing.
src/utils_threshold.c | patch | blob | history |
diff --git a/src/utils_threshold.c b/src/utils_threshold.c
index 090cc75206f9c47acdde32dc5c6821bca67201aa..e387cbf79024deed927a0d5587df5d5ce47ea0cd 100644 (file)
--- a/src/utils_threshold.c
+++ b/src/utils_threshold.c
#define UT_FLAG_INVERT 0x01
#define UT_FLAG_PERSIST 0x02
#define UT_FLAG_PERCENTAGE 0x04
+#define UT_FLAG_INTERESTING 0x08
/* }}} */
/*
return (0);
} /* int ut_config_type_min */
+static int ut_config_type_interesting (threshold_t *th, oconfig_item_t *ci)
+{
+ if ((ci->values_num != 1)
+ || (ci->values[0].type != OCONFIG_TYPE_BOOLEAN))
+ {
+ WARNING ("threshold values: The `Interesting' option needs exactly one "
+ "boolean argument.");
+ return (-1);
+ }
+
+ if (ci->values[0].value.boolean)
+ th->flags |= UT_FLAG_INTERESTING;
+ else
+ th->flags &= ~UT_FLAG_INTERESTING;
+
+ return (0);
+} /* int ut_config_type_interesting */
+
static int ut_config_type_invert (threshold_t *th, oconfig_item_t *ci)
{
if ((ci->values_num != 1)
th.failure_max = NAN;
th.hits = 0;
th.hysteresis = 0;
+ th.flags = UT_FLAG_INTERESTING; /* interesting by default */
for (i = 0; i < ci->children_num; i++)
{
else if ((strcasecmp ("WarningMin", option->key) == 0)
|| (strcasecmp ("FailureMin", option->key) == 0))
status = ut_config_type_min (&th, option);
+ else if (strcasecmp ("Interesting", option->key) == 0)
+ status = ut_config_type_interesting (&th, option);
else if (strcasecmp ("Invert", option->key) == 0)
status = ut_config_type_invert (&th, option);
else if (strcasecmp ("Persist", option->key) == 0)
th.hits = 0;
th.hysteresis = 0;
+ th.flags = UT_FLAG_INTERESTING; /* interesting by default */
for (i = 0; i < ci->children_num; i++)
{
th = threshold_search (&vl);
if (th == NULL)
return (0);
+
+ if ((th->flags & UT_FLAG_INTERESTING) == 0)
+ return (0);
+
if ((th->flags & UT_FLAG_PERSIST) == 0)
return (1);
return (2);