From: Marc Fournier Date: Fri, 26 Jul 2013 13:10:08 +0000 (+0200) Subject: statsd plugin: add TimerLower and TimerUpper options X-Git-Tag: collectd-5.4.0~10 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=1b750eb50cb50e62338e380217191a71d92088d4;p=collectd.git statsd plugin: add TimerLower and TimerUpper options The "lower" and "upper" names were chosen over "min" and "max" to match the naming scheme used by the node.js implementation. --- diff --git a/src/statsd.c b/src/statsd.c index 5af34833..1045aeaa 100644 --- a/src/statsd.c +++ b/src/statsd.c @@ -79,6 +79,9 @@ static _Bool conf_delete_sets = 0; static double *conf_timer_percentile = NULL; static size_t conf_timer_percentile_num = 0; +static _Bool conf_timer_lower = 0; +static _Bool conf_timer_upper = 0; + /* Must hold metrics_lock when calling this function. */ static statsd_metric_t *statsd_metric_lookup_unsafe (char const *name, /* {{{ */ metric_type_t type) @@ -625,6 +628,10 @@ static int statsd_config (oconfig_item_t *ci) /* {{{ */ cf_util_get_boolean (child, &conf_delete_gauges); else if (strcasecmp ("DeleteSets", child->key) == 0) cf_util_get_boolean (child, &conf_delete_sets); + else if (strcasecmp ("TimerLower", child->key) == 0) + cf_util_get_boolean (child, &conf_timer_lower); + else if (strcasecmp ("TimerUpper", child->key) == 0) + cf_util_get_boolean (child, &conf_timer_upper); else if (strcasecmp ("TimerPercentile", child->key) == 0) statsd_config_timer_percentile (child); else @@ -726,6 +733,22 @@ static int statsd_metric_submit_unsafe (char const *name, /* {{{ */ latency_counter_get_average (metric->latency)); plugin_dispatch_values (&vl); + if (conf_timer_lower) { + ssnprintf (vl.type_instance, sizeof (vl.type_instance), + "%s-lower", name); + values[0].gauge = CDTIME_T_TO_DOUBLE ( + latency_counter_get_min (metric->latency)); + plugin_dispatch_values (&vl); + } + + if (conf_timer_upper) { + ssnprintf (vl.type_instance, sizeof (vl.type_instance), + "%s-upper", name); + values[0].gauge = CDTIME_T_TO_DOUBLE ( + latency_counter_get_max (metric->latency)); + plugin_dispatch_values (&vl); + } + for (i = 0; i < conf_timer_percentile_num; i++) { ssnprintf (vl.type_instance, sizeof (vl.type_instance),