mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 15:47:01 +02:00
DEBUG: wdt: add a stats counter "BlockedTrafficWarnings" in show info
Every time a warning is issued about traffic being blocked, let's increment a global counter so that we can check for this situation in "show info".
This commit is contained in:
parent
6127e5a4e9
commit
84dd05e7d8
@ -25,6 +25,8 @@
|
|||||||
struct task;
|
struct task;
|
||||||
struct buffer;
|
struct buffer;
|
||||||
extern unsigned int debug_commands_issued;
|
extern unsigned int debug_commands_issued;
|
||||||
|
extern unsigned int warn_blocked_issued;
|
||||||
|
|
||||||
void ha_task_dump(struct buffer *buf, const struct task *task, const char *pfx);
|
void ha_task_dump(struct buffer *buf, const struct task *task, const char *pfx);
|
||||||
void ha_thread_dump_one(int thr, int from_signal);
|
void ha_thread_dump_one(int thr, int from_signal);
|
||||||
void ha_dump_backtrace(struct buffer *buf, const char *prefix, int dump);
|
void ha_dump_backtrace(struct buffer *buf, const char *prefix, int dump);
|
||||||
|
@ -336,6 +336,7 @@ enum stat_idx_info {
|
|||||||
ST_I_INF_NICED_TASKS,
|
ST_I_INF_NICED_TASKS,
|
||||||
ST_I_INF_CURR_STRM,
|
ST_I_INF_CURR_STRM,
|
||||||
ST_I_INF_CUM_STRM,
|
ST_I_INF_CUM_STRM,
|
||||||
|
ST_I_INF_WARN_BLOCKED,
|
||||||
|
|
||||||
/* must always be the last one */
|
/* must always be the last one */
|
||||||
ST_I_INF_MAX
|
ST_I_INF_MAX
|
||||||
|
@ -162,6 +162,7 @@ struct post_mortem {
|
|||||||
} post_mortem ALIGNED(256) HA_SECTION("_post_mortem") = { };
|
} post_mortem ALIGNED(256) HA_SECTION("_post_mortem") = { };
|
||||||
|
|
||||||
unsigned int debug_commands_issued = 0;
|
unsigned int debug_commands_issued = 0;
|
||||||
|
unsigned int warn_blocked_issued = 0;
|
||||||
|
|
||||||
/* dumps a backtrace of the current thread that is appended to buffer <buf>.
|
/* dumps a backtrace of the current thread that is appended to buffer <buf>.
|
||||||
* Lines are prefixed with the string <prefix> which may be empty (used for
|
* Lines are prefixed with the string <prefix> which may be empty (used for
|
||||||
@ -747,6 +748,8 @@ void ha_stuck_warning(int thr)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HA_ATOMIC_INC(&warn_blocked_issued);
|
||||||
|
|
||||||
buf = b_make(msg_buf, sizeof(msg_buf), 0, 0);
|
buf = b_make(msg_buf, sizeof(msg_buf), 0, 0);
|
||||||
|
|
||||||
p = HA_ATOMIC_LOAD(&ha_thread_ctx[thr].prev_cpu_time);
|
p = HA_ATOMIC_LOAD(&ha_thread_ctx[thr].prev_cpu_time);
|
||||||
|
@ -170,6 +170,7 @@ const struct name_desc stat_cols_info[ST_I_INF_MAX] = {
|
|||||||
[ST_I_INF_NICED_TASKS] = { .name = "Niced_tasks", .desc = "Total number of active tasks+tasklets in the current worker process (Run_queue) that are niced" },
|
[ST_I_INF_NICED_TASKS] = { .name = "Niced_tasks", .desc = "Total number of active tasks+tasklets in the current worker process (Run_queue) that are niced" },
|
||||||
[ST_I_INF_CURR_STRM] = { .name = "CurrStreams", .desc = "Current number of streams on this worker process" },
|
[ST_I_INF_CURR_STRM] = { .name = "CurrStreams", .desc = "Current number of streams on this worker process" },
|
||||||
[ST_I_INF_CUM_STRM] = { .name = "CumStreams", .desc = "Total number of streams created on this worker process since started" },
|
[ST_I_INF_CUM_STRM] = { .name = "CumStreams", .desc = "Total number of streams created on this worker process since started" },
|
||||||
|
[ST_I_INF_WARN_BLOCKED] = { .name = "BlockedTrafficWarnings", .desc = "Total number of warnings issued about traffic being blocked by too slow a task" },
|
||||||
};
|
};
|
||||||
|
|
||||||
/* one line of info */
|
/* one line of info */
|
||||||
@ -823,6 +824,7 @@ int stats_fill_info(struct field *line, int len, uint flags)
|
|||||||
line[ST_I_INF_NICED_TASKS] = mkf_u32(0, total_niced_running_tasks());
|
line[ST_I_INF_NICED_TASKS] = mkf_u32(0, total_niced_running_tasks());
|
||||||
line[ST_I_INF_CURR_STRM] = mkf_u64(0, glob_curr_strms);
|
line[ST_I_INF_CURR_STRM] = mkf_u64(0, glob_curr_strms);
|
||||||
line[ST_I_INF_CUM_STRM] = mkf_u64(0, glob_cum_strms);
|
line[ST_I_INF_CUM_STRM] = mkf_u64(0, glob_cum_strms);
|
||||||
|
line[ST_I_INF_WARN_BLOCKED] = mkf_u32(0, warn_blocked_issued);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user