MT#55283 properly support double value stats

Change-Id: Ibabccb95d7dde410018e85f515c3b46733af6a35
pull/1614/head
Richard Fuchs 3 years ago
parent 8db4d64b84
commit c9e38ebe9a

@ -477,6 +477,8 @@ static void mqtt_global_stats(JsonBuilder *json) {
json_builder_set_member_name(json, m->label);
if (m->is_int)
json_builder_add_int_value(json, m->int_value);
else if (m->is_double)
json_builder_add_double_value(json, m->double_value);
else
json_builder_add_string_value(json, m->value_short);
}

@ -247,6 +247,10 @@ static void add_metric(GQueue *ret, const char *label, const char *desc, const c
m->is_int = 1;
m->int_value = va_arg(ap, long long);
}
else if (!strcmp(fmt1, "%.6f") || !strcmp(fmt1, "%.2f")) {
m->is_double = 1;
m->double_value = va_arg(ap, double);
}
va_end(ap);
}
metric_push(ret, m);
@ -585,8 +589,8 @@ GQueue *statistics_gather_metrics(void) {
mn = g_strdup_printf("%sduration", ng_command_strings_short[i]);
lw = g_ascii_strdown(mn, -1);
METRICsva(lw, "%llu.%06llu", (unsigned long long) cur->cmd[i].time.tv_sec,
(unsigned long long) cur->cmd[i].time.tv_usec);
METRICs(lw, "%.6f", (double) cur->cmd[i].time.tv_sec +
(double) cur->cmd[i].time.tv_usec / 1000000.);
PROM("request_seconds_total", "counter");
PROMLAB("proxy=\"%s\",request=\"%s\"", sockaddr_print_buf(&cur->proxy),
ng_command_strings[i]);

@ -93,11 +93,13 @@ struct stats_metric {
char *value_short;
char *value_long;
int64_t int_value;
double double_value;
int is_bracket;
int is_close_bracket;
int is_brace;
int is_follow_up;
int is_int;
int is_double;
const char *prom_name;
const char *prom_type;
char *prom_label;

Loading…
Cancel
Save