mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-07 22:12:08 +00:00
MINOR: stats: avoid excessive padding of float values with trailing zeroes
When emitting stats, we don't need to have 6 zeroes after the decimal point for each value, so let's trim floating point numbers to the longest needed only.
This commit is contained in:
parent
aa33f20e27
commit
065ba3186e
14
src/stats.c
14
src/stats.c
@ -374,7 +374,11 @@ int stats_emit_raw_data_field(struct buffer *out, const struct field *f)
|
||||
case FF_U32: return chunk_appendf(out, "%u", f->u.u32);
|
||||
case FF_S64: return chunk_appendf(out, "%lld", (long long)f->u.s64);
|
||||
case FF_U64: return chunk_appendf(out, "%llu", (unsigned long long)f->u.u64);
|
||||
case FF_FLT: return chunk_appendf(out, "%f", f->u.flt);
|
||||
case FF_FLT: {
|
||||
size_t prev_data = out->data;
|
||||
out->data = flt_trim(out->area, prev_data, chunk_appendf(out, "%f", f->u.flt));
|
||||
return out->data;
|
||||
}
|
||||
case FF_STR: return csv_enc_append(field_str(f, 0), 1, out) != NULL;
|
||||
default: return chunk_appendf(out, "[INCORRECT_FIELD_TYPE_%08x]", f->type);
|
||||
}
|
||||
@ -406,7 +410,11 @@ int stats_emit_typed_data_field(struct buffer *out, const struct field *f)
|
||||
case FF_U32: return chunk_appendf(out, "u32:%u", f->u.u32);
|
||||
case FF_S64: return chunk_appendf(out, "s64:%lld", (long long)f->u.s64);
|
||||
case FF_U64: return chunk_appendf(out, "u64:%llu", (unsigned long long)f->u.u64);
|
||||
case FF_FLT: return chunk_appendf(out, "flt:%f", f->u.flt);
|
||||
case FF_FLT: {
|
||||
size_t prev_data = out->data;
|
||||
out->data = flt_trim(out->area, prev_data, chunk_appendf(out, "flt:%f", f->u.flt));
|
||||
return out->data;
|
||||
}
|
||||
case FF_STR: return chunk_appendf(out, "str:%s", field_str(f, 0));
|
||||
default: return chunk_appendf(out, "%08x:?", f->type);
|
||||
}
|
||||
@ -448,7 +456,7 @@ int stats_emit_json_data_field(struct buffer *out, const struct field *f)
|
||||
(unsigned long long) f->u.u64);
|
||||
break;
|
||||
case FF_FLT: type = "\"flt\"";
|
||||
snprintf(buf, sizeof(buf), "%f", f->u.flt);
|
||||
flt_trim(buf, 0, snprintf(buf, sizeof(buf), "%f", f->u.flt));
|
||||
break;
|
||||
case FF_STR: type = "\"str\"";
|
||||
value = field_str(f, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user