X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=src%2Futils_tail_match.c;h=0e5a861141e768ec3f1329af4b59d79f927c06b1;hp=af8bbe7c2dcad17b152cd460ff06083fafee73e2;hb=48efd3deb4c9139fd060ff3d289896e9031bcc7c;hpb=68c08bd380d63281f5707e893c27f952c5fde1d8 diff --git a/src/utils_tail_match.c b/src/utils_tail_match.c index af8bbe7c..0e5a8611 100644 --- a/src/utils_tail_match.c +++ b/src/utils_tail_match.c @@ -31,11 +31,11 @@ #include "collectd.h" -#include "common.h" #include "plugin.h" -#include "utils_latency_config.h" -#include "utils_match.h" -#include "utils_tail.h" +#include "utils/common/common.h" +#include "utils/latency/latency_config.h" +#include "utils/match/match.h" +#include "utils/tail/tail.h" #include "utils_tail_match.h" struct cu_tail_match_simple_s { @@ -43,7 +43,6 @@ struct cu_tail_match_simple_s { char plugin_instance[DATA_MAX_NAME_LEN]; char type[DATA_MAX_NAME_LEN]; char type_instance[DATA_MAX_NAME_LEN]; - cdtime_t interval; latency_config_t latency_config; }; typedef struct cu_tail_match_simple_s cu_tail_match_simple_t; @@ -57,10 +56,7 @@ struct cu_tail_match_match_s { typedef struct cu_tail_match_match_s cu_tail_match_match_t; struct cu_tail_match_s { - int flags; cu_tail_t *tail; - - cdtime_t interval; cu_tail_match_match_t *matches; size_t matches_num; }; @@ -92,7 +88,6 @@ static int simple_submit_match(cu_match_t *match, void *user_data) { sstrncpy(vl.type, data->type, sizeof(vl.type)); sstrncpy(vl.type_instance, data->type_instance, sizeof(vl.type_instance)); - vl.interval = data->interval; plugin_dispatch_values(&vl); match_value_reset(match_value); @@ -108,21 +103,19 @@ static int latency_submit_match(cu_match_t *match, void *user_data) { if (match_value == NULL) return -1; - sstrncpy(vl.host, hostname_g, sizeof(vl.host)); sstrncpy(vl.plugin, data->plugin, sizeof(vl.plugin)); sstrncpy(vl.plugin_instance, data->plugin_instance, sizeof(vl.plugin_instance)); - vl.interval = data->interval; vl.time = cdtime(); /* Submit percentiles */ sstrncpy(vl.type, data->type, sizeof(vl.type)); for (size_t i = 0; i < data->latency_config.percentile_num; i++) { if (strlen(data->type_instance) != 0) - snprintf(vl.type_instance, sizeof(vl.type_instance), "%s-%.0f", + snprintf(vl.type_instance, sizeof(vl.type_instance), "%.50s-%.5g", data->type_instance, data->latency_config.percentile[i]); else - snprintf(vl.type_instance, sizeof(vl.type_instance), "%.0f", + snprintf(vl.type_instance, sizeof(vl.type_instance), "%.5g", data->latency_config.percentile[i]); vl.values = &(value_t){ @@ -138,7 +131,11 @@ static int latency_submit_match(cu_match_t *match, void *user_data) { } /* Submit buckets */ - sstrncpy(vl.type, "bucket", sizeof(vl.type)); + if (data->latency_config.bucket_type != NULL) + sstrncpy(vl.type, data->latency_config.bucket_type, sizeof(vl.type)); + else + sstrncpy(vl.type, "bucket", sizeof(vl.type)); + for (size_t i = 0; i < data->latency_config.buckets_num; i++) { latency_bucket_t bucket = data->latency_config.buckets[i]; @@ -147,10 +144,10 @@ static int latency_submit_match(cu_match_t *match, void *user_data) { bucket.upper_bound ? CDTIME_T_TO_DOUBLE(bucket.upper_bound) : INFINITY; if (strlen(data->type_instance) != 0) - snprintf(vl.type_instance, sizeof(vl.type_instance), "%s-%s-%g_%g", + snprintf(vl.type_instance, sizeof(vl.type_instance), "%.50s-%.50s-%g_%g", data->type, data->type_instance, lower_bound, upper_bound); else - snprintf(vl.type_instance, sizeof(vl.type_instance), "%s-%g_%g", + snprintf(vl.type_instance, sizeof(vl.type_instance), "%.50s-%g_%g", data->type, lower_bound, upper_bound); vl.values = &(value_t){ @@ -245,8 +242,6 @@ int tail_match_add_match(cu_tail_match_t *obj, cu_match_t *match, obj->matches = temp; obj->matches_num++; - DEBUG("tail_match_add_match interval %lf", - CDTIME_T_TO_DOUBLE(((cu_tail_match_simple_t *)user_data)->interval)); temp = obj->matches + (obj->matches_num - 1); temp->match = match; @@ -261,8 +256,7 @@ int tail_match_add_match_simple(cu_tail_match_t *obj, const char *regex, const char *excluderegex, int ds_type, const char *plugin, const char *plugin_instance, const char *type, const char *type_instance, - const latency_config_t latency_cfg, - const cdtime_t interval) { + const latency_config_t latency_cfg) { cu_match_t *match; cu_tail_match_simple_t *user_data; int status; @@ -287,8 +281,6 @@ int tail_match_add_match_simple(cu_tail_match_t *obj, const char *regex, sstrncpy(user_data->type_instance, type_instance, sizeof(user_data->type_instance)); - user_data->interval = interval; - if ((ds_type & UTILS_MATCH_DS_TYPE_GAUGE) && (ds_type & UTILS_MATCH_CF_GAUGE_DIST)) { status = latency_config_copy(&user_data->latency_config, latency_cfg);