X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fmemcached.c;h=d2827a48260be946c4c9c2f84336cf41475cbc8a;hb=b5e292899f5b2edaeb25f9a5187da071fc94a831;hp=5a9faf32a0a84ff6dfe333ed57dd2e12001dfc35;hpb=cb48bb1590b2953f3d0134f6d6355c61bce7304a;p=collectd.git diff --git a/src/memcached.c b/src/memcached.c index 5a9faf32..d2827a48 100644 --- a/src/memcached.c +++ b/src/memcached.c @@ -291,6 +291,12 @@ static int memcached_query_daemon(char *buffer, size_t buffer_size, close(st->fd); st->fd = -1; return -1; + } else if (status == 0) { + ERROR("memcached plugin: Instance \"%s\": Connection closed by peer", + st->name); + close(st->fd); + st->fd = -1; + return -1; } buffer_fill += (size_t)status; @@ -406,9 +412,12 @@ static gauge_t calculate_ratio_percent(derive_t part, derive_t total, *prev_part = part; *prev_total = total; - if (num == 0 || denom == 0) + if (denom == 0) return NAN; + if (num == 0) + return 0; + return 100.0 * (gauge_t)num / (gauge_t)denom; } @@ -426,9 +435,12 @@ static gauge_t calculate_ratio_percent2(derive_t part1, derive_t part2, *prev1 = part1; *prev2 = part2; - if (num == 0 || denom == 0) + if (denom == 0) return NAN; + if (num == 0) + return 0; + return 100.0 * (gauge_t)num / (gauge_t)denom; } @@ -517,7 +529,7 @@ static int memcached_read(user_data_t *user_data) { else if (FIELD_IS("curr_connections")) { submit_gauge("memcached_connections", "current", atof(fields[2]), st); } else if (FIELD_IS("listen_disabled_num")) { - submit_derive("connections", "listen_disabled", atoll(fields[2]), st); + submit_derive("total_events", "listen_disabled", atoll(fields[2]), st); } /* * Total number of connections opened since the server started running