mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-15 10:06:55 +00:00
MINOR: log: report the number of dropped logs in the stats
It's easy to detect when logs on some paths are lost as sendmsg() will return EAGAIN. This is particularly true when sending to /dev/log, which often doesn't support a big logging capacity. Let's keep track of these and report the total number of dropped messages in "show info".
This commit is contained in:
parent
adb345d485
commit
13ef773722
@ -46,6 +46,8 @@ extern char clf_http_log_format[];
|
||||
|
||||
extern char default_rfc5424_sd_log_format[];
|
||||
|
||||
extern unsigned int dropped_logs;
|
||||
|
||||
extern THREAD_LOCAL char *logheader;
|
||||
extern THREAD_LOCAL char *logheader_rfc5424;
|
||||
extern THREAD_LOCAL char *logline;
|
||||
|
@ -293,6 +293,7 @@ enum info_field {
|
||||
INF_LISTENERS,
|
||||
INF_ACTIVE_PEERS,
|
||||
INF_CONNECTED_PEERS,
|
||||
INF_DROPPED_LOGS,
|
||||
|
||||
/* must always be the last one */
|
||||
INF_TOTAL_FIELDS
|
||||
|
@ -210,6 +210,9 @@ char *log_format = NULL;
|
||||
*/
|
||||
char default_rfc5424_sd_log_format[] = "- ";
|
||||
|
||||
/* total number of dropped logs */
|
||||
unsigned int dropped_logs = 0;
|
||||
|
||||
/* This is a global syslog header, common to all outgoing messages in
|
||||
* RFC3164 format. It begins with time-based part and is updated by
|
||||
* update_log_hdr().
|
||||
@ -1478,7 +1481,9 @@ send:
|
||||
if (sent < 0) {
|
||||
static char once;
|
||||
|
||||
if (!once) {
|
||||
if (errno == EAGAIN)
|
||||
HA_ATOMIC_ADD(&dropped_logs, 1);
|
||||
else if (!once) {
|
||||
once = 1; /* note: no need for atomic ops here */
|
||||
ha_alert("sendmsg() failed in logger #%d: %s (errno=%d)\n",
|
||||
nblogger, strerror(errno), errno);
|
||||
|
@ -135,6 +135,7 @@ const char *info_field_names[INF_TOTAL_FIELDS] = {
|
||||
[INF_LISTENERS] = "Listeners",
|
||||
[INF_ACTIVE_PEERS] = "ActivePeers",
|
||||
[INF_CONNECTED_PEERS] = "ConnectedPeers",
|
||||
[INF_DROPPED_LOGS] = "DroppedLogs",
|
||||
};
|
||||
|
||||
const char *stat_field_names[ST_F_TOTAL_FIELDS] = {
|
||||
@ -3302,6 +3303,7 @@ int stats_fill_info(struct field *info, int len)
|
||||
info[INF_LISTENERS] = mkf_u32(0, listeners);
|
||||
info[INF_ACTIVE_PEERS] = mkf_u32(0, active_peers);
|
||||
info[INF_CONNECTED_PEERS] = mkf_u32(0, connected_peers);
|
||||
info[INF_DROPPED_LOGS] = mkf_u32(0, dropped_logs);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user