From: Timo Sirainen Date: Wed, 13 Dec 2017 12:44:01 +0000 (+0200) Subject: doveadm stats dump: Add -r parameter to reset stats after dumping X-Git-Tag: 2.3.0.rc1~59 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f46a703b2916bdda27e701f2f8305c0ce3d1e893;p=thirdparty%2Fdovecot%2Fcore.git doveadm stats dump: Add -r parameter to reset stats after dumping --- diff --git a/src/doveadm/doveadm-stats.c b/src/doveadm/doveadm-stats.c index 3ded75608a..a211ec7e80 100644 --- a/src/doveadm/doveadm-stats.c +++ b/src/doveadm/doveadm-stats.c @@ -21,7 +21,7 @@ static void dump_timing(const char *const **args, unsigned int fields_count) *args += args_count; } -static void stats_dump(const char *path, const char *const *fields) +static void stats_dump(const char *path, const char *const *fields, bool reset) { struct istream *input; string_t *cmd = t_str_new(128); @@ -31,7 +31,8 @@ static void stats_dump(const char *path, const char *const *fields) fd = doveadm_connect(path); net_set_nonblock(fd, FALSE); - str_append(cmd, "VERSION\tstats-reader-client\t2\t0\nDUMP"); + str_append(cmd, "VERSION\tstats-reader-client\t2\t0\n"); + str_append(cmd, reset ? "DUMP-RESET" : "DUMP"); for (i = 0; i < fields_count; i++) { str_append_c(cmd, '\t'); str_append_tabescaped(cmd, fields[i]); @@ -81,23 +82,27 @@ static void doveadm_cmd_stats_dump(struct doveadm_cmd_context *cctx) { const char *path; + bool reset; if (!doveadm_cmd_param_str(cctx, "socket-path", &path)) path = t_strconcat(doveadm_settings->base_dir, "/stats-reader", NULL); + if (!doveadm_cmd_param_bool(cctx, "reset", &reset)) + reset = FALSE; doveadm_print_init(DOVEADM_PRINT_TYPE_TAB); const char *const fields[] = { "count", "sum", "min", "max", "avg", "median", "%95", NULL }; - stats_dump(path, fields); + stats_dump(path, fields, reset); return; } struct doveadm_cmd_ver2 doveadm_cmd_stats_dump_ver2 = { .cmd = doveadm_cmd_stats_dump, .name = "stats dump", - .usage = "[-s ]", + .usage = "[-s ] [-r]", DOVEADM_CMD_PARAMS_START DOVEADM_CMD_PARAM('s', "socket-path", CMD_PARAM_STR, 0) +DOVEADM_CMD_PARAM('r', "reset", CMD_PARAM_BOOL, 0) DOVEADM_CMD_PARAMS_END };