X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fceph.c;h=9027771e341117a2f538ed2e0a4808d66082487c;hb=61a4ed99b1a5b6d371bb745933d0efc5dff9505c;hp=bfd95e829eed6b1cc4f82ed351de8aeb45c697e7;hpb=ddde85aad33bad5e7f5ed0d21ee082ef1dcda140;p=collectd.git diff --git a/src/ceph.c b/src/ceph.c index bfd95e82..9027771e 100644 --- a/src/ceph.c +++ b/src/ceph.c @@ -280,7 +280,7 @@ static int ceph_cb_number(void *ctx, const char *number_val, * the same type of other "Bytes". Instead of keeping an "average" or * "rate", use the "sum" in the pair and assign that to the derive * value. */ - if (convert_special_metrics && (state->depth >= 2) && + if (convert_special_metrics && (state->depth > 2) && (strcmp("filestore", state->stack[state->depth - 2]) == 0) && (strcmp("journal_wr_bytes", state->stack[state->depth - 1]) == 0) && (strcmp("avgcount", state->key) == 0)) { @@ -396,7 +396,7 @@ static void ceph_daemon_free(struct ceph_daemon *d) { } /* compact_ds_name removed the special characters ":", "_", "-" and "+" from the - * intput string. Characters following these special characters are capitalized. + * input string. Characters following these special characters are capitalized. * Trailing "+" and "-" characters are replaces with the strings "Plus" and * "Minus". */ static int compact_ds_name(char *buffer, size_t buffer_size, char const *src) { @@ -404,8 +404,8 @@ static int compact_ds_name(char *buffer, size_t buffer_size, char const *src) { size_t src_len; char *ptr = buffer; size_t ptr_size = buffer_size; - _Bool append_plus = 0; - _Bool append_minus = 0; + bool append_plus = 0; + bool append_minus = 0; if ((buffer == NULL) || (buffer_size <= strlen("Minus")) || (src == NULL)) return EINVAL; @@ -470,7 +470,7 @@ static int compact_ds_name(char *buffer, size_t buffer_size, char const *src) { return 0; } -static _Bool has_suffix(char const *str, char const *suffix) { +static bool has_suffix(char const *str, char const *suffix) { size_t str_len = strlen(str); size_t suffix_len = strlen(suffix); size_t offset; @@ -518,12 +518,6 @@ static int parse_keys(char *buffer, size_t buffer_size, const char *key_str) { size_t tmp_size = sizeof(tmp); const char *cut_suffixes[] = {".type", ".avgcount", ".sum", ".avgtime"}; - /* The "avgtime" metric reports ("sum" / "avgcount"), i.e. the average time - * per request since the start of the Ceph daemon. Report this only when the - * user has configured "long running average". Otherwise, use the rate of - * "sum" and "avgcount" to calculate the current latency. - */ - if (buffer == NULL || buffer_size == 0 || key_str == NULL || strlen(key_str) == 0) return EINVAL; @@ -933,7 +927,13 @@ static int node_handler_fetch_data(void *arg, const char *val, uv.gauge = result; vtmp->latency_index = (vtmp->latency_index + 1); } else if (has_suffix(key, ".avgtime")) { - // skip this step if no need in long run latency + + /* The "avgtime" metric reports ("sum" / "avgcount"), i.e. the average + * time per request since the start of the Ceph daemon. Report this only + * when the user has configured "long running average". Otherwise, use the + * rate of "sum" and "avgcount" to calculate the current latency. + */ + if (!long_run_latency_avg) { return 0; } @@ -1341,7 +1341,7 @@ static int cconn_main_loop(uint32_t request_type) { struct cconn *io = io_array + i; ret = cconn_prepare(io, fds + nfds); if (ret < 0) { - WARNING("ceph plugin: cconn_prepare(name=%s,i=%zu,st=%d)=%d", + WARNING("ceph plugin: cconn_prepare(name=%s,i=%" PRIsz ",st=%d)=%d", io->d->name, i, io->state, ret); cconn_close(io); io->request_type = ASOK_REQ_NONE;