index 803656d48b97a7b0c61b75c2e22a5ce878df4af5..35102b6dec76b78e5062156dda586c3d773daae6 100644 (file)
--- a/src/daemon/utils_match.c
+++ b/src/daemon/utils_match.c
return (-1);
if ((data->values_num == 0)
- || (data->ds_type & UTILS_MATCH_CF_GAUGE_LAST))
+ || (data->ds_type & UTILS_MATCH_CF_GAUGE_LAST)
+ || (data->ds_type & UTILS_MATCH_CF_GAUGE_PERSIST))
{
data->value.gauge = value;
}
if (data->ds_type & UTILS_MATCH_CF_DERIVE_INC)
{
- data->value.counter++;
+ data->value.derive++;
data->values_num++;
return (0);
}
if (mv == NULL)
return;
- if (mv->ds_type & UTILS_MATCH_DS_TYPE_GAUGE)
+ /* Reset GAUGE metrics only and except GAUGE_PERSIST. */
+ if ((mv->ds_type & UTILS_MATCH_DS_TYPE_GAUGE)
+ && !(mv->ds_type & UTILS_MATCH_CF_GAUGE_PERSIST))
{
mv->value.gauge = NAN;
mv->values_num = 0;
regmatch_t re_match[32];
char *matches[32] = { 0 };
size_t matches_num;
- size_t i;
if ((obj == NULL) || (str == NULL))
return (-1);
}
}
- for (i = 0; i < matches_num; i++)
+ for (size_t i = 0; i < matches_num; i++)
{
sfree (matches[i]);
}