From 923cb842707915d65ce82cd45c8d318808d836cd Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Fri, 20 Aug 2021 17:09:38 +0200 Subject: [PATCH] vty 'stats reset': do not reset stat_items Exempt all stat_item statistics from 'stats reset'. Only reset rate_ctr statistics to zero. The rate_ctr statistics have an implicit time scale, counting occurences per time unit. For them it makes sense to reset all ratings and start from zero, for example in a test suite (e.g. our TTCN3 BSC_Tests). In contrast, stat_item statistics count number of objects or nr of specific object stati at any given time, and they do not deteriorate over time. Many stat items depend on increment/decrement to be sane. For example, in osmo-bsc, if the nr of connected BTS is 3, that does not make sense to be reset to zero. There are still 3 BTS connected, only the stat_item would suddenly reflect zero. From then on, it'd be wrong. All stat_items are by definition wrong after a 'stats reset'. - Those that depend on increment/decrement will be wrong until the program exits, and - those that are set to absolute values will be wrong up until the next value is set. That could be seconds or hours later, depending. Related: SYS#5542 Change-Id: If2134768b1076e7af189276c45f2a09a4944303e --- src/vty/stats_vty.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/vty/stats_vty.c b/src/vty/stats_vty.c index ba45e1e99..c9ae0fbc1 100644 --- a/src/vty/stats_vty.c +++ b/src/vty/stats_vty.c @@ -586,19 +586,12 @@ static int reset_rate_ctr_group_handler(struct rate_ctr_group *ctrg, void *sctx_ return 0; } -static int reset_osmo_stat_item_group_handler(struct osmo_stat_item_group *statg, void *sctx_) -{ - osmo_stat_item_group_reset(statg); - return 0; -} - DEFUN(stats_reset, stats_reset_cmd, "stats reset", - STATS_STR "Reset all stats\n") + STATS_STR "Reset all rate counter stats\n") { rate_ctr_for_each_group(reset_rate_ctr_group_handler, NULL); - osmo_stat_item_for_each_group(reset_osmo_stat_item_group_handler, NULL); return CMD_SUCCESS; }