[STAT_STATUS_IVAL] = "IVAL",
};
-/* These are the metric names for each ST_I_INF_* field position. Please pay attention
+/* These are the column names for each ST_I_INF_* field position. Please pay attention
* to always use the exact same name except that the strings for new names must
* be lower case or CamelCase while the enum entries must be upper case.
*/
-const struct name_desc metrics_info[ST_I_INF_MAX] = {
+const struct name_desc stat_cols_info[ST_I_INF_MAX] = {
[ST_I_INF_NAME] = { .name = "Name", .desc = "Product name" },
[ST_I_INF_VERSION] = { .name = "Version", .desc = "Product version" },
[ST_I_INF_RELEASE_DATE] = { .name = "Release_date", .desc = "Date of latest source code update" },
/* one line of info */
THREAD_LOCAL struct field stat_line_info[ST_I_INF_MAX];
-const struct name_desc metrics_px[ST_I_PX_MAX] = {
+const struct name_desc stat_cols_px[ST_I_PX_MAX] = {
[ST_I_PX_PXNAME] = { .name = "pxname", .desc = "Proxy name" },
[ST_I_PX_SVNAME] = { .name = "svname", .desc = "Server name" },
[ST_I_PX_QCUR] = { .name = "qcur", .desc = "Number of current queued connections" },
/* one line for stats */
THREAD_LOCAL struct field *stat_lines[STATS_DOMAIN_COUNT];
-/* Unified storage for metrics from all stats module
+/* Unified storage for statistics from all module
* TODO merge info stats into it as global statistic domain.
*/
-struct name_desc *metrics[STATS_DOMAIN_COUNT];
-static size_t metrics_len[STATS_DOMAIN_COUNT];
+struct name_desc *stat_cols[STATS_DOMAIN_COUNT];
+static size_t stat_cols_len[STATS_DOMAIN_COUNT];
/* list of all registered stats module */
struct list stats_module_list[STATS_DOMAIN_COUNT] = {
int i;
chunk_appendf(out, "# ");
- if (metrics[domain]) {
- for (i = 0; i < metrics_len[domain]; ++i) {
- chunk_appendf(out, "%s,", metrics[domain][i].name);
+ if (stat_cols[domain]) {
+ for (i = 0; i < stat_cols_len[domain]; ++i) {
+ chunk_appendf(out, "%s,", stat_cols[domain][i].name);
/* print special delimiter on proxy stats to mark end of
static fields */
'?',
line[ST_I_PX_IID].u.u32, line[ST_I_PX_SID].u.u32,
i,
- metrics[domain][i].name,
+ stat_cols[domain][i].name,
line[ST_I_PX_PID].u.u32);
break;
case STATS_DOMAIN_RESOLVERS:
chunk_appendf(out, "N.%d.%s:", i,
- metrics[domain][i].name);
+ stat_cols[domain][i].name);
break;
default:
return 0;
if (flags & STAT_F_SHOW_FDESC &&
- !chunk_appendf(out, ":\"%s\"", metrics[domain][i].desc)) {
+ !chunk_appendf(out, ":\"%s\"", stat_cols[domain][i].desc)) {
return 0;
}
if ((ctx->flags & STAT_F_BOUND) && !(ctx->type & (1 << STATS_TYPE_FE)))
return 0;
- memset(line, 0, sizeof(struct field) * metrics_len[STATS_DOMAIN_PROXY]);
+ memset(line, 0, sizeof(struct field) * stat_cols_len[STATS_DOMAIN_PROXY]);
if (!stats_fill_fe_line(px, line, ST_I_PX_MAX, NULL))
return 0;
struct stats_module *mod;
size_t stats_count = ST_I_PX_MAX;
- memset(line, 0, sizeof(struct field) * metrics_len[STATS_DOMAIN_PROXY]);
+ memset(line, 0, sizeof(struct field) * stat_cols_len[STATS_DOMAIN_PROXY]);
if (!stats_fill_li_line(px, l, ctx->flags, line,
ST_I_PX_MAX, NULL))
struct field *line = stat_lines[STATS_DOMAIN_PROXY];
size_t stats_count = ST_I_PX_MAX;
- memset(line, 0, sizeof(struct field) * metrics_len[STATS_DOMAIN_PROXY]);
+ memset(line, 0, sizeof(struct field) * stat_cols_len[STATS_DOMAIN_PROXY]);
if (!stats_fill_sv_line(px, sv, ctx->flags, line,
ST_I_PX_MAX, NULL))
if ((ctx->flags & STAT_F_BOUND) && !(ctx->type & (1 << STATS_TYPE_BE)))
return 0;
- memset(line, 0, sizeof(struct field) * metrics_len[STATS_DOMAIN_PROXY]);
+ memset(line, 0, sizeof(struct field) * stat_cols_len[STATS_DOMAIN_PROXY]);
if (!stats_fill_be_line(px, ctx->flags, line, ST_I_PX_MAX, NULL))
return 0;
switch (domain) {
case STATS_DOMAIN_RESOLVERS:
if (!stats_dump_resolvers(sc, stat_lines[domain],
- metrics_len[domain],
+ stat_cols_len[domain],
&stats_module_list[domain])) {
return 0;
}
if (!field_format(line, i))
continue;
- if (!chunk_appendf(out, "%s: ", metrics_info[i].name))
+ if (!chunk_appendf(out, "%s: ", stat_cols_info[i].name))
return 0;
if (!stats_emit_raw_data_field(out, &line[i]))
return 0;
- if ((flags & STAT_F_SHOW_FDESC) && !chunk_appendf(out, ":\"%s\"", metrics_info[i].desc))
+ if ((flags & STAT_F_SHOW_FDESC) && !chunk_appendf(out, ":\"%s\"", stat_cols_info[i].desc))
return 0;
if (!chunk_strcat(out, "\n"))
return 0;
if (!field_format(line, i))
continue;
- if (!chunk_appendf(out, "%d.%s.%u:", i, metrics_info[i].name,
+ if (!chunk_appendf(out, "%d.%s.%u:", i, stat_cols_info[i].name,
line[ST_I_INF_PROCESS_NUM].u.u32)) {
return 0;
}
return 0;
if (!stats_emit_typed_data_field(out, &line[i]))
return 0;
- if ((flags & STAT_F_SHOW_FDESC) && !chunk_appendf(out, ":\"%s\"", metrics_info[i].desc))
+ if ((flags & STAT_F_SHOW_FDESC) && !chunk_appendf(out, ":\"%s\"", stat_cols_info[i].desc))
return 0;
if (!chunk_strcat(out, "\n"))
return 0;
const uint8_t domain = stats_get_domain(m->domain_flags);
LIST_APPEND(&stats_module_list[domain], &m->list);
- metrics_len[domain] += m->stats_count;
+ stat_cols_len[domain] += m->stats_count;
}
int err_code = 0;
struct proxy *px;
- metrics_len[STATS_DOMAIN_PROXY] += ST_I_PX_MAX;
+ stat_cols_len[STATS_DOMAIN_PROXY] += ST_I_PX_MAX;
- metrics[STATS_DOMAIN_PROXY] = malloc(metrics_len[STATS_DOMAIN_PROXY] * sizeof(struct name_desc));
- if (!metrics[STATS_DOMAIN_PROXY]) {
+ stat_cols[STATS_DOMAIN_PROXY] = malloc(stat_cols_len[STATS_DOMAIN_PROXY] * sizeof(struct name_desc));
+ if (!stat_cols[STATS_DOMAIN_PROXY]) {
ha_alert("stats: cannot allocate all fields for proxy statistics\n");
err_code |= ERR_ALERT | ERR_FATAL;
return err_code;
}
- memcpy(metrics[STATS_DOMAIN_PROXY], metrics_px,
+ memcpy(stat_cols[STATS_DOMAIN_PROXY], stat_cols_px,
ST_I_PX_MAX * sizeof(struct name_desc));
list_for_each_entry(mod, &stats_module_list[STATS_DOMAIN_PROXY], list) {
- memcpy(metrics[STATS_DOMAIN_PROXY] + i,
+ memcpy(stat_cols[STATS_DOMAIN_PROXY] + i,
mod->stats,
mod->stats_count * sizeof(struct name_desc));
i += mod->stats_count;
size_t i = 0;
int err_code = 0;
- metrics[STATS_DOMAIN_RESOLVERS] = malloc(metrics_len[STATS_DOMAIN_RESOLVERS] * sizeof(struct name_desc));
- if (!metrics[STATS_DOMAIN_RESOLVERS]) {
+ stat_cols[STATS_DOMAIN_RESOLVERS] = malloc(stat_cols_len[STATS_DOMAIN_RESOLVERS] * sizeof(struct name_desc));
+ if (!stat_cols[STATS_DOMAIN_RESOLVERS]) {
ha_alert("stats: cannot allocate all fields for resolver statistics\n");
err_code |= ERR_ALERT | ERR_FATAL;
return err_code;
}
list_for_each_entry(mod, &stats_module_list[STATS_DOMAIN_RESOLVERS], list) {
- memcpy(metrics[STATS_DOMAIN_RESOLVERS] + i,
+ memcpy(stat_cols[STATS_DOMAIN_RESOLVERS] + i,
mod->stats,
mod->stats_count * sizeof(struct name_desc));
i += mod->stats_count;
for (i = 0; i < STATS_DOMAIN_COUNT; ++i) {
const int domain = domains[i];
- stat_lines[domain] = malloc(metrics_len[domain] * sizeof(struct field));
+ stat_lines[domain] = malloc(stat_cols_len[domain] * sizeof(struct field));
if (!stat_lines[domain])
return 0;
}
for (i = 0; i < STATS_DOMAIN_COUNT; ++i) {
const int domain = domains[i];
- if (metrics[domain])
- free(metrics[domain]);
+ if (stat_cols[domain])
+ free(stat_cols[domain]);
}
}