X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=src%2Fstatsd.c;h=ccd15ebe5668bd878f00269c1539db9e89464b9e;hp=aa4e35c52da887cc13754a3e9215d32482992ac7;hb=a9e50e9e30ecde17e167e271060c8183bfcbf407;hpb=2b4445ea9b4b978468d75864f98e8137ba628dec diff --git a/src/statsd.c b/src/statsd.c index aa4e35c5..ccd15ebe 100644 --- a/src/statsd.c +++ b/src/statsd.c @@ -107,7 +107,7 @@ static statsd_metric_t *statsd_metric_lookup_unsafe(char const *name, /* {{{ */ key[0] = 's'; break; default: - return (NULL); + return NULL; } key[1] = ':'; @@ -115,19 +115,19 @@ static statsd_metric_t *statsd_metric_lookup_unsafe(char const *name, /* {{{ */ status = c_avl_get(metrics_tree, key, (void *)&metric); if (status == 0) - return (metric); + return metric; key_copy = strdup(key); if (key_copy == NULL) { ERROR("statsd plugin: strdup failed."); - return (NULL); + return NULL; } metric = calloc(1, sizeof(*metric)); if (metric == NULL) { ERROR("statsd plugin: calloc failed."); sfree(key_copy); - return (NULL); + return NULL; } metric->type = type; @@ -139,10 +139,10 @@ static statsd_metric_t *statsd_metric_lookup_unsafe(char const *name, /* {{{ */ ERROR("statsd plugin: c_avl_insert failed."); sfree(key_copy); sfree(metric); - return (NULL); + return NULL; } - return (metric); + return metric; } /* }}} statsd_metric_lookup_unsafe */ static int statsd_metric_set(char const *name, double value, /* {{{ */ @@ -154,7 +154,7 @@ static int statsd_metric_set(char const *name, double value, /* {{{ */ metric = statsd_metric_lookup_unsafe(name, type); if (metric == NULL) { pthread_mutex_unlock(&metrics_lock); - return (-1); + return -1; } metric->value = value; @@ -162,7 +162,7 @@ static int statsd_metric_set(char const *name, double value, /* {{{ */ pthread_mutex_unlock(&metrics_lock); - return (0); + return 0; } /* }}} int statsd_metric_set */ static int statsd_metric_add(char const *name, double delta, /* {{{ */ @@ -174,7 +174,7 @@ static int statsd_metric_add(char const *name, double delta, /* {{{ */ metric = statsd_metric_lookup_unsafe(name, type); if (metric == NULL) { pthread_mutex_unlock(&metrics_lock); - return (-1); + return -1; } metric->value += delta; @@ -182,7 +182,7 @@ static int statsd_metric_add(char const *name, double delta, /* {{{ */ pthread_mutex_unlock(&metrics_lock); - return (0); + return 0; } /* }}} int statsd_metric_add */ static void statsd_metric_free(statsd_metric_t *metric) /* {{{ */ @@ -217,9 +217,9 @@ static int statsd_parse_value(char const *str, value_t *ret_value) /* {{{ */ ret_value->gauge = (gauge_t)strtod(str, &endptr); if ((str == endptr) || ((endptr != NULL) && (*endptr != 0))) - return (-1); + return -1; - return (0); + return 0; } /* }}} int statsd_parse_value */ static int statsd_handle_counter(char const *name, /* {{{ */ @@ -229,27 +229,27 @@ static int statsd_handle_counter(char const *name, /* {{{ */ int status; if ((extra != NULL) && (extra[0] != '@')) - return (-1); + return -1; scale.gauge = 1.0; if (extra != NULL) { status = statsd_parse_value(extra + 1, &scale); if (status != 0) - return (status); + return status; if (!isfinite(scale.gauge) || (scale.gauge <= 0.0) || (scale.gauge > 1.0)) - return (-1); + return -1; } value.gauge = 1.0; status = statsd_parse_value(value_str, &value); if (status != 0) - return (status); + return status; /* Changes to the counter are added to (statsd_metric_t*)->value. ->counter is * only updated in statsd_metric_submit_unsafe(). */ - return (statsd_metric_add(name, (double)(value.gauge / scale.gauge), - STATSD_COUNTER)); + return statsd_metric_add(name, (double)(value.gauge / scale.gauge), + STATSD_COUNTER); } /* }}} int statsd_handle_counter */ static int statsd_handle_gauge(char const *name, /* {{{ */ @@ -260,12 +260,12 @@ static int statsd_handle_gauge(char const *name, /* {{{ */ value.gauge = 0; status = statsd_parse_value(value_str, &value); if (status != 0) - return (status); + return status; if ((value_str[0] == '+') || (value_str[0] == '-')) - return (statsd_metric_add(name, (double)value.gauge, STATSD_GAUGE)); + return statsd_metric_add(name, (double)value.gauge, STATSD_GAUGE); else - return (statsd_metric_set(name, (double)value.gauge, STATSD_GAUGE)); + return statsd_metric_set(name, (double)value.gauge, STATSD_GAUGE); } /* }}} int statsd_handle_gauge */ static int statsd_handle_timer(char const *name, /* {{{ */ @@ -277,22 +277,22 @@ static int statsd_handle_timer(char const *name, /* {{{ */ int status; if ((extra != NULL) && (extra[0] != '@')) - return (-1); + return -1; scale.gauge = 1.0; if (extra != NULL) { status = statsd_parse_value(extra + 1, &scale); if (status != 0) - return (status); + return status; if (!isfinite(scale.gauge) || (scale.gauge <= 0.0) || (scale.gauge > 1.0)) - return (-1); + return -1; } value_ms.derive = 0; status = statsd_parse_value(value_str, &value_ms); if (status != 0) - return (status); + return status; value = MS_TO_CDTIME_T(value_ms.gauge / scale.gauge); @@ -301,21 +301,21 @@ static int statsd_handle_timer(char const *name, /* {{{ */ metric = statsd_metric_lookup_unsafe(name, STATSD_TIMER); if (metric == NULL) { pthread_mutex_unlock(&metrics_lock); - return (-1); + return -1; } if (metric->latency == NULL) metric->latency = latency_counter_create(); if (metric->latency == NULL) { pthread_mutex_unlock(&metrics_lock); - return (-1); + return -1; } latency_counter_add(metric->latency, value); metric->updates_num++; pthread_mutex_unlock(&metrics_lock); - return (0); + return 0; } /* }}} int statsd_handle_timer */ static int statsd_handle_set(char const *name, /* {{{ */ @@ -329,7 +329,7 @@ static int statsd_handle_set(char const *name, /* {{{ */ metric = statsd_metric_lookup_unsafe(name, STATSD_SET); if (metric == NULL) { pthread_mutex_unlock(&metrics_lock); - return (-1); + return -1; } /* Make sure metric->set exists. */ @@ -339,14 +339,14 @@ static int statsd_handle_set(char const *name, /* {{{ */ if (metric->set == NULL) { pthread_mutex_unlock(&metrics_lock); ERROR("statsd plugin: c_avl_create failed."); - return (-1); + return -1; } set_key = strdup(set_key_orig); if (set_key == NULL) { pthread_mutex_unlock(&metrics_lock); ERROR("statsd plugin: strdup failed."); - return (-1); + return -1; } status = c_avl_insert(metric->set, set_key, /* value = */ NULL); @@ -356,7 +356,7 @@ static int statsd_handle_set(char const *name, /* {{{ */ ERROR("statsd plugin: c_avl_insert (\"%s\") failed with status %i.", set_key, status); sfree(set_key); - return (-1); + return -1; } else if (status > 0) /* key already exists */ { sfree(set_key); @@ -365,7 +365,7 @@ static int statsd_handle_set(char const *name, /* {{{ */ metric->updates_num++; pthread_mutex_unlock(&metrics_lock); - return (0); + return 0; } /* }}} int statsd_handle_set */ static int statsd_parse_line(char *buffer) /* {{{ */ @@ -377,13 +377,13 @@ static int statsd_parse_line(char *buffer) /* {{{ */ type = strchr(name, '|'); if (type == NULL) - return (-1); + return -1; *type = 0; type++; value = strrchr(name, ':'); if (value == NULL) - return (-1); + return -1; *value = 0; value++; @@ -394,20 +394,20 @@ static int statsd_parse_line(char *buffer) /* {{{ */ } if (strcmp("c", type) == 0) - return (statsd_handle_counter(name, value, extra)); + return statsd_handle_counter(name, value, extra); else if (strcmp("ms", type) == 0) - return (statsd_handle_timer(name, value, extra)); + return statsd_handle_timer(name, value, extra); /* extra is only valid for counters and timers */ if (extra != NULL) - return (-1); + return -1; if (strcmp("g", type) == 0) - return (statsd_handle_gauge(name, value)); + return statsd_handle_gauge(name, value); else if (strcmp("s", type) == 0) - return (statsd_handle_set(name, value)); + return statsd_handle_set(name, value); else - return (-1); + return -1; } /* }}} void statsd_parse_line */ static void statsd_parse_buffer(char *buffer) /* {{{ */ @@ -446,13 +446,11 @@ static void statsd_network_read(int fd) /* {{{ */ status = recv(fd, buffer, sizeof(buffer), /* flags = */ MSG_DONTWAIT); if (status < 0) { - char errbuf[1024]; if ((errno == EAGAIN) || (errno == EWOULDBLOCK)) return; - ERROR("statsd plugin: recv(2) failed: %s", - sstrerror(errno, errbuf, sizeof(errbuf))); + ERROR("statsd plugin: recv(2) failed: %s", STRERRNO); return; } @@ -484,7 +482,7 @@ static int statsd_network_init(struct pollfd **ret_fds, /* {{{ */ if (status != 0) { ERROR("statsd plugin: getaddrinfo (\"%s\", \"%s\") failed: %s", node, service, gai_strerror(status)); - return (status); + return status; } for (struct addrinfo *ai_ptr = ai_list; ai_ptr != NULL; @@ -497,9 +495,7 @@ static int statsd_network_init(struct pollfd **ret_fds, /* {{{ */ fd = socket(ai_ptr->ai_family, ai_ptr->ai_socktype, ai_ptr->ai_protocol); if (fd < 0) { - char errbuf[1024]; - ERROR("statsd plugin: socket(2) failed: %s", - sstrerror(errno, errbuf, sizeof(errbuf))); + ERROR("statsd plugin: socket(2) failed: %s", STRERRNO); continue; } @@ -511,9 +507,7 @@ static int statsd_network_init(struct pollfd **ret_fds, /* {{{ */ status = bind(fd, ai_ptr->ai_addr, ai_ptr->ai_addrlen); if (status != 0) { - char errbuf[1024]; - ERROR("statsd plugin: bind(2) failed: %s", - sstrerror(errno, errbuf, sizeof(errbuf))); + ERROR("statsd plugin: bind(2) failed: %s", STRERRNO); close(fd); continue; } @@ -538,12 +532,12 @@ static int statsd_network_init(struct pollfd **ret_fds, /* {{{ */ if (fds_num == 0) { ERROR("statsd plugin: Unable to create listening socket for [%s]:%s.", (node != NULL) ? node : "::", service); - return (ENOENT); + return ENOENT; } *ret_fds = fds; *ret_fds_num = fds_num; - return (0); + return 0; } /* }}} int statsd_network_init */ static void *statsd_network_thread(void *args) /* {{{ */ @@ -561,13 +555,11 @@ static void *statsd_network_thread(void *args) /* {{{ */ while (!network_thread_shutdown) { status = poll(fds, (nfds_t)fds_num, /* timeout = */ -1); if (status < 0) { - char errbuf[1024]; if ((errno == EINTR) || (errno == EAGAIN)) continue; - ERROR("statsd plugin: poll(2) failed: %s", - sstrerror(errno, errbuf, sizeof(errbuf))); + ERROR("statsd plugin: poll(2) failed: %s", STRERRNO); break; } @@ -585,7 +577,7 @@ static void *statsd_network_thread(void *args) /* {{{ */ close(fds[i].fd); sfree(fds); - return ((void *)0); + return (void *)0; } /* }}} void *statsd_network_thread */ static int statsd_config_timer_percentile(oconfig_item_t *ci) /* {{{ */ @@ -596,26 +588,27 @@ static int statsd_config_timer_percentile(oconfig_item_t *ci) /* {{{ */ status = cf_util_get_double(ci, &percent); if (status != 0) - return (status); + return status; if ((percent <= 0.0) || (percent >= 100)) { ERROR("statsd plugin: The value for \"%s\" must be between 0 and 100, " "exclusively.", ci->key); - return (ERANGE); + return ERANGE; } - tmp = realloc(conf_timer_percentile, sizeof(*conf_timer_percentile) * - (conf_timer_percentile_num + 1)); + tmp = + realloc(conf_timer_percentile, + sizeof(*conf_timer_percentile) * (conf_timer_percentile_num + 1)); if (tmp == NULL) { ERROR("statsd plugin: realloc failed."); - return (ENOMEM); + return ENOMEM; } conf_timer_percentile = tmp; conf_timer_percentile[conf_timer_percentile_num] = percent; conf_timer_percentile_num++; - return (0); + return 0; } /* }}} int statsd_config_timer_percentile */ static int statsd_config(oconfig_item_t *ci) /* {{{ */ @@ -652,7 +645,7 @@ static int statsd_config(oconfig_item_t *ci) /* {{{ */ child->key); } - return (0); + return 0; } /* }}} int statsd_config */ static int statsd_init(void) /* {{{ */ @@ -668,18 +661,16 @@ static int statsd_init(void) /* {{{ */ /* attr = */ NULL, statsd_network_thread, /* args = */ NULL); if (status != 0) { - char errbuf[1024]; pthread_mutex_unlock(&metrics_lock); - ERROR("statsd plugin: pthread_create failed: %s", - sstrerror(errno, errbuf, sizeof(errbuf))); - return (status); + ERROR("statsd plugin: pthread_create failed: %s", STRERRNO); + return status; } } network_thread_running = 1; pthread_mutex_unlock(&metrics_lock); - return (0); + return 0; } /* }}} int statsd_init */ /* Must hold metrics_lock when calling this function. */ @@ -689,17 +680,17 @@ static int statsd_metric_clear_set_unsafe(statsd_metric_t *metric) /* {{{ */ void *value; if ((metric == NULL) || (metric->type != STATSD_SET)) - return (EINVAL); + return EINVAL; if (metric->set == NULL) - return (0); + return 0; while (c_avl_pick(metric->set, &key, &value) == 0) { sfree(key); sfree(value); } - return (0); + return 0; } /* }}} int statsd_metric_clear_set_unsafe */ /* Must hold metrics_lock when calling this function. */ @@ -731,7 +722,7 @@ static int statsd_metric_submit_unsafe(char const *name, /* Make sure all timer metrics share the *same* timestamp. */ vl.time = cdtime(); - ssnprintf(vl.type_instance, sizeof(vl.type_instance), "%s-average", name); + snprintf(vl.type_instance, sizeof(vl.type_instance), "%s-average", name); vl.values[0].gauge = have_events ? CDTIME_T_TO_DOUBLE(latency_counter_get_average(metric->latency)) @@ -739,7 +730,7 @@ static int statsd_metric_submit_unsafe(char const *name, plugin_dispatch_values(&vl); if (conf_timer_lower) { - ssnprintf(vl.type_instance, sizeof(vl.type_instance), "%s-lower", name); + snprintf(vl.type_instance, sizeof(vl.type_instance), "%s-lower", name); vl.values[0].gauge = have_events ? CDTIME_T_TO_DOUBLE(latency_counter_get_min(metric->latency)) @@ -748,7 +739,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); + snprintf(vl.type_instance, sizeof(vl.type_instance), "%s-upper", name); vl.values[0].gauge = have_events ? CDTIME_T_TO_DOUBLE(latency_counter_get_max(metric->latency)) @@ -757,7 +748,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); + snprintf(vl.type_instance, sizeof(vl.type_instance), "%s-sum", name); vl.values[0].gauge = have_events ? CDTIME_T_TO_DOUBLE(latency_counter_get_sum(metric->latency)) @@ -766,8 +757,8 @@ 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]); + snprintf(vl.type_instance, sizeof(vl.type_instance), "%s-percentile-%.0f", + name, conf_timer_percentile[i]); vl.values[0].gauge = have_events ? CDTIME_T_TO_DOUBLE(latency_counter_get_percentile( metric->latency, conf_timer_percentile[i])) @@ -779,13 +770,13 @@ static int statsd_metric_submit_unsafe(char const *name, * vl.type's above are implicitly set to "latency". */ if (conf_timer_count) { sstrncpy(vl.type, "gauge", sizeof(vl.type)); - ssnprintf(vl.type_instance, sizeof(vl.type_instance), "%s-count", name); + snprintf(vl.type_instance, sizeof(vl.type_instance), "%s-count", name); vl.values[0].gauge = latency_counter_get_num(metric->latency); plugin_dispatch_values(&vl); } latency_counter_reset(metric->latency); - return (0); + return 0; } else if (metric->type == STATSD_SET) { if (metric->set == NULL) vl.values[0].gauge = 0.0; @@ -815,7 +806,7 @@ static int statsd_metric_submit_unsafe(char const *name, vl.values[0].derive = metric->counter; } - return (plugin_dispatch_values(&vl)); + return plugin_dispatch_values(&vl); } /* }}} int statsd_metric_submit_unsafe */ static int statsd_read(void) /* {{{ */ @@ -831,7 +822,7 @@ static int statsd_read(void) /* {{{ */ if (metrics_tree == NULL) { pthread_mutex_unlock(&metrics_lock); - return (0); + return 0; } iter = c_avl_get_iterator(metrics_tree); @@ -876,7 +867,7 @@ static int statsd_read(void) /* {{{ */ strarray_free(to_be_deleted, to_be_deleted_num); - return (0); + return 0; } /* }}} int statsd_read */ static int statsd_shutdown(void) /* {{{ */ @@ -905,7 +896,7 @@ static int statsd_shutdown(void) /* {{{ */ pthread_mutex_unlock(&metrics_lock); - return (0); + return 0; } /* }}} int statsd_shutdown */ void module_register(void) {