From: Pierre-Yves Ritschard Date: Tue, 29 Jul 2014 20:33:27 +0000 (+0200) Subject: Merge pull request #684 from manuelluis/mlsr/aix-disable-multimeter X-Git-Tag: collectd-5.5.0~248 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=7a8ec0ed76e1b3f2326a1fc69164daf73f41e853;hp=3c83a0681c4b90ededd12fd473ba50f21f786797;p=collectd.git Merge pull request #684 from manuelluis/mlsr/aix-disable-multimeter Disable plugin multimeter in AIX --- diff --git a/src/tail.c b/src/tail.c index d5166b2a..ab063389 100644 --- a/src/tail.c +++ b/src/tail.c @@ -80,6 +80,10 @@ static int ctail_config_add_match_dstype (ctail_config_match_t *cm, cm->flags |= UTILS_MATCH_CF_GAUGE_MAX; else if (strcasecmp ("GaugeLast", ci->values[0].value.string) == 0) cm->flags |= UTILS_MATCH_CF_GAUGE_LAST; + else if (strcasecmp ("GaugeInc", ci->values[0].value.string) == 0) + cm->flags |= UTILS_MATCH_CF_GAUGE_INC; + else if (strcasecmp ("GaugeAdd", ci->values[0].value.string) == 0) + cm->flags |= UTILS_MATCH_CF_GAUGE_ADD; else cm->flags = 0; } diff --git a/src/utils_match.c b/src/utils_match.c index 8e9b32c3..b024c69b 100644 --- a/src/utils_match.c +++ b/src/utils_match.c @@ -84,6 +84,13 @@ static int default_callback (const char __attribute__((unused)) *str, gauge_t value; char *endptr = NULL; + if (data->ds_type & UTILS_MATCH_CF_GAUGE_INC) + { + data->value.gauge = isnan (data->value.gauge) ? 1 : data->value.gauge + 1; + data->values_num++; + return(0); + } + if (matches_num < 2) return (-1); @@ -112,6 +119,10 @@ static int default_callback (const char __attribute__((unused)) *str, if (data->value.gauge < value) data->value.gauge = value; } + else if (data->ds_type & UTILS_MATCH_CF_GAUGE_ADD) + { + data->value.gauge += value; + } else { ERROR ("utils_match: default_callback: obj->ds_type is invalid!"); diff --git a/src/utils_match.h b/src/utils_match.h index 6ffd9574..705a609e 100644 --- a/src/utils_match.h +++ b/src/utils_match.h @@ -30,17 +30,22 @@ #include "plugin.h" /* - * Defines + * Each type may have 12 sub-types + * 0x1000 = 1000000000000 + * ^ <- Type bit + * ^^^^^^^^^^^^ <- Subtype bits */ -#define UTILS_MATCH_DS_TYPE_GAUGE 0x10 -#define UTILS_MATCH_DS_TYPE_COUNTER 0x20 -#define UTILS_MATCH_DS_TYPE_DERIVE 0x40 -#define UTILS_MATCH_DS_TYPE_ABSOLUTE 0x80 +#define UTILS_MATCH_DS_TYPE_GAUGE 0x1000 +#define UTILS_MATCH_DS_TYPE_COUNTER 0x2000 +#define UTILS_MATCH_DS_TYPE_DERIVE 0x4000 +#define UTILS_MATCH_DS_TYPE_ABSOLUTE 0x8000 #define UTILS_MATCH_CF_GAUGE_AVERAGE 0x01 #define UTILS_MATCH_CF_GAUGE_MIN 0x02 #define UTILS_MATCH_CF_GAUGE_MAX 0x04 #define UTILS_MATCH_CF_GAUGE_LAST 0x08 +#define UTILS_MATCH_CF_GAUGE_INC 0x10 +#define UTILS_MATCH_CF_GAUGE_ADD 0x20 #define UTILS_MATCH_CF_COUNTER_SET 0x01 #define UTILS_MATCH_CF_COUNTER_ADD 0x02