X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fstatsd.c;h=47e01d80fe541c9ff1f7ce5e5ff24ac738eb2633;hb=419c41409a5c3ba5531008165dff12c6ef5cc819;hp=dd15d59296d63f415127b0f6aa2e4255ad272a5e;hpb=2079ee1517e34de372f58e7e2267ad5c71a8a41f;p=collectd.git diff --git a/src/statsd.c b/src/statsd.c index dd15d592..47e01d80 100644 --- a/src/statsd.c +++ b/src/statsd.c @@ -706,12 +706,10 @@ static int statsd_metric_clear_set_unsafe(statsd_metric_t *metric) /* {{{ */ static int statsd_metric_submit_unsafe(char const *name, statsd_metric_t *metric) /* {{{ */ { - value_t values[1]; value_list_t vl = VALUE_LIST_INIT; - vl.values = values; + vl.values = &(value_t){.gauge = NAN}; vl.values_len = 1; - sstrncpy(vl.host, hostname_g, sizeof(vl.host)); sstrncpy(vl.plugin, "statsd", sizeof(vl.plugin)); if (metric->type == STATSD_GAUGE) @@ -726,7 +724,7 @@ static int statsd_metric_submit_unsafe(char const *name, sstrncpy(vl.type_instance, name, sizeof(vl.type_instance)); if (metric->type == STATSD_GAUGE) - values[0].gauge = (gauge_t)metric->value; + vl.values[0].gauge = (gauge_t)metric->value; else if (metric->type == STATSD_TIMER) { _Bool have_events = (metric->updates_num > 0); @@ -734,7 +732,7 @@ static int statsd_metric_submit_unsafe(char const *name, vl.time = cdtime(); ssnprintf(vl.type_instance, sizeof(vl.type_instance), "%s-average", name); - values[0].gauge = + vl.values[0].gauge = have_events ? CDTIME_T_TO_DOUBLE(latency_counter_get_average(metric->latency)) : NAN; @@ -742,7 +740,7 @@ static int statsd_metric_submit_unsafe(char const *name, if (conf_timer_lower) { ssnprintf(vl.type_instance, sizeof(vl.type_instance), "%s-lower", name); - values[0].gauge = + vl.values[0].gauge = have_events ? CDTIME_T_TO_DOUBLE(latency_counter_get_min(metric->latency)) : NAN; @@ -751,7 +749,7 @@ static int statsd_metric_submit_unsafe(char const *name, if (conf_timer_upper) { ssnprintf(vl.type_instance, sizeof(vl.type_instance), "%s-upper", name); - values[0].gauge = + vl.values[0].gauge = have_events ? CDTIME_T_TO_DOUBLE(latency_counter_get_max(metric->latency)) : NAN; @@ -760,7 +758,7 @@ static int statsd_metric_submit_unsafe(char const *name, if (conf_timer_sum) { ssnprintf(vl.type_instance, sizeof(vl.type_instance), "%s-sum", name); - values[0].gauge = + vl.values[0].gauge = have_events ? CDTIME_T_TO_DOUBLE(latency_counter_get_sum(metric->latency)) : NAN; @@ -770,10 +768,10 @@ static int statsd_metric_submit_unsafe(char const *name, for (size_t i = 0; i < conf_timer_percentile_num; i++) { ssnprintf(vl.type_instance, sizeof(vl.type_instance), "%s-percentile-%.0f", name, conf_timer_percentile[i]); - values[0].gauge = have_events - ? CDTIME_T_TO_DOUBLE(latency_counter_get_percentile( - metric->latency, conf_timer_percentile[i])) - : NAN; + vl.values[0].gauge = + have_events ? CDTIME_T_TO_DOUBLE(latency_counter_get_percentile( + metric->latency, conf_timer_percentile[i])) + : NAN; plugin_dispatch_values(&vl); } @@ -782,7 +780,7 @@ static int statsd_metric_submit_unsafe(char const *name, if (conf_timer_count) { sstrncpy(vl.type, "gauge", sizeof(vl.type)); ssnprintf(vl.type_instance, sizeof(vl.type_instance), "%s-count", name); - values[0].gauge = latency_counter_get_num(metric->latency); + vl.values[0].gauge = latency_counter_get_num(metric->latency); plugin_dispatch_values(&vl); } @@ -790,9 +788,9 @@ static int statsd_metric_submit_unsafe(char const *name, return (0); } else if (metric->type == STATSD_SET) { if (metric->set == NULL) - values[0].gauge = 0.0; + vl.values[0].gauge = 0.0; else - values[0].gauge = (gauge_t)c_avl_size(metric->set); + vl.values[0].gauge = (gauge_t)c_avl_size(metric->set); } else { /* STATSD_COUNTER */ gauge_t delta = nearbyint(metric->value); @@ -802,7 +800,7 @@ static int statsd_metric_submit_unsafe(char const *name, * anyway - if requested by the user - for compatibility reasons. */ if (conf_counter_sum) { sstrncpy(vl.type, "count", sizeof(vl.type)); - values[0].gauge = delta; + vl.values[0].gauge = delta; plugin_dispatch_values(&vl); /* restore vl.type */ @@ -814,7 +812,7 @@ static int statsd_metric_submit_unsafe(char const *name, metric->value -= delta; metric->counter += (derive_t)delta; - values[0].derive = metric->counter; + vl.values[0].derive = metric->counter; } return (plugin_dispatch_values(&vl));