mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-12 06:24:56 +00:00
MINOR: log: adds counters on received syslog messages.
This patch adds a global counter of received syslog messages and this one is exported on CLI "show info" as "CumRecvLogs". This patch also updates internal conn counter and freq of the listener and the proxy for each received log message to prepare a further export on the "show stats".
This commit is contained in:
parent
12941c82d0
commit
45c457a629
@ -49,6 +49,9 @@ extern struct proxy *cfg_log_forward;
|
|||||||
extern THREAD_LOCAL char *logline;
|
extern THREAD_LOCAL char *logline;
|
||||||
extern THREAD_LOCAL char *logline_rfc5424;
|
extern THREAD_LOCAL char *logline_rfc5424;
|
||||||
|
|
||||||
|
/* global syslog message counter */
|
||||||
|
extern int cum_log_messages;
|
||||||
|
|
||||||
/* syslog UDP message handler */
|
/* syslog UDP message handler */
|
||||||
void syslog_fd_handler(int fd);
|
void syslog_fd_handler(int fd);
|
||||||
|
|
||||||
@ -165,6 +168,7 @@ static inline int build_logline(struct stream *s, char *dst, size_t maxsize, str
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct ist *build_log_header(enum log_fmt format, int level, int facility, struct ist *metadata, size_t *nbelem);
|
struct ist *build_log_header(enum log_fmt format, int level, int facility, struct ist *metadata, size_t *nbelem);
|
||||||
|
|
||||||
#endif /* _HAPROXY_LOG_H */
|
#endif /* _HAPROXY_LOG_H */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -317,6 +317,7 @@ enum info_field {
|
|||||||
INF_TOTAL_SPLICED_BYTES_OUT,
|
INF_TOTAL_SPLICED_BYTES_OUT,
|
||||||
INF_BYTES_OUT_RATE,
|
INF_BYTES_OUT_RATE,
|
||||||
INF_DEBUG_COMMANDS_ISSUED,
|
INF_DEBUG_COMMANDS_ISSUED,
|
||||||
|
INF_CUM_LOG_MSGS,
|
||||||
|
|
||||||
/* must always be the last one */
|
/* must always be the last one */
|
||||||
INF_TOTAL_FIELDS
|
INF_TOTAL_FIELDS
|
||||||
|
@ -45,6 +45,8 @@
|
|||||||
#include <haproxy/tools.h>
|
#include <haproxy/tools.h>
|
||||||
#include <haproxy/version.h>
|
#include <haproxy/version.h>
|
||||||
|
|
||||||
|
/* global recv logs counter */
|
||||||
|
int cum_log_messages;
|
||||||
|
|
||||||
/* log forward proxy list */
|
/* log forward proxy list */
|
||||||
struct proxy *cfg_log_forward;
|
struct proxy *cfg_log_forward;
|
||||||
@ -3538,6 +3540,10 @@ void syslog_fd_handler(int fd)
|
|||||||
}
|
}
|
||||||
buf->data = ret;
|
buf->data = ret;
|
||||||
|
|
||||||
|
/* update counters */
|
||||||
|
_HA_ATOMIC_ADD(&cum_log_messages, 1);
|
||||||
|
proxy_inc_fe_conn_ctr(l, l->bind_conf->frontend);
|
||||||
|
|
||||||
parse_log_message(buf->area, buf->data, &level, &facility, metadata, &message, &size);
|
parse_log_message(buf->area, buf->data, &level, &facility, metadata, &message, &size);
|
||||||
|
|
||||||
process_send_log(&l->bind_conf->frontend->logsrvs, level, facility, metadata, message, size);
|
process_send_log(&l->bind_conf->frontend->logsrvs, level, facility, metadata, message, size);
|
||||||
|
@ -147,6 +147,7 @@ const struct name_desc info_fields[INF_TOTAL_FIELDS] = {
|
|||||||
[INF_TOTAL_SPLICED_BYTES_OUT] = { .name = "TotalSplicdedBytesOut", .desc = "Total number of bytes emitted by current worker process through a kernel pipe since started" },
|
[INF_TOTAL_SPLICED_BYTES_OUT] = { .name = "TotalSplicdedBytesOut", .desc = "Total number of bytes emitted by current worker process through a kernel pipe since started" },
|
||||||
[INF_BYTES_OUT_RATE] = { .name = "BytesOutRate", .desc = "Number of bytes emitted by current worker process over the last second" },
|
[INF_BYTES_OUT_RATE] = { .name = "BytesOutRate", .desc = "Number of bytes emitted by current worker process over the last second" },
|
||||||
[INF_DEBUG_COMMANDS_ISSUED] = { .name = "DebugCommandsIssued", .desc = "Number of debug commands issued on this process (anything > 0 is unsafe)" },
|
[INF_DEBUG_COMMANDS_ISSUED] = { .name = "DebugCommandsIssued", .desc = "Number of debug commands issued on this process (anything > 0 is unsafe)" },
|
||||||
|
[INF_CUM_LOG_MSGS] = { .name = "CumRecvLogs", .desc = "Total number of log messages received by log-forwarding listeners on this worker process since started" },
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct name_desc stat_fields[ST_F_TOTAL_FIELDS] = {
|
const struct name_desc stat_fields[ST_F_TOTAL_FIELDS] = {
|
||||||
@ -3523,6 +3524,7 @@ int stats_fill_info(struct field *info, int len)
|
|||||||
info[INF_TOTAL_SPLICED_BYTES_OUT] = mkf_u64(0, global.spliced_out_bytes);
|
info[INF_TOTAL_SPLICED_BYTES_OUT] = mkf_u64(0, global.spliced_out_bytes);
|
||||||
info[INF_BYTES_OUT_RATE] = mkf_u64(FN_RATE, (unsigned long long)read_freq_ctr(&global.out_32bps) * 32);
|
info[INF_BYTES_OUT_RATE] = mkf_u64(FN_RATE, (unsigned long long)read_freq_ctr(&global.out_32bps) * 32);
|
||||||
info[INF_DEBUG_COMMANDS_ISSUED] = mkf_u32(0, debug_commands_issued);
|
info[INF_DEBUG_COMMANDS_ISSUED] = mkf_u32(0, debug_commands_issued);
|
||||||
|
info[INF_CUM_LOG_MSGS] = mkf_u32(FN_COUNTER, cum_log_messages);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user