Add a 'show rate-counters' VTY command.

Add a new VTY command which shows all rate counters registered
with libosmocore.

Change-Id: Id60a5aa2d961ae99cddf1e776358a5517dbc573d
Depends: Idb3ec12494ff6a3a05efcc8818e78d1baa6546bd
Related: OS#3245
diff --git a/src/vty/stats_vty.c b/src/vty/stats_vty.c
index faa136d..8d90945 100644
--- a/src/vty/stats_vty.c
+++ b/src/vty/stats_vty.c
@@ -527,6 +527,22 @@
 	return CMD_SUCCESS;
 }
 
+static int rate_ctr_group_handler(struct rate_ctr_group *ctrg, void *sctx_)
+{
+	struct vty *vty = sctx_;
+	vty_out_rate_ctr_group_fmt(vty, "%25n: %10c (%S/s %M/m %H/h %D/d) %d", ctrg);
+	return 0;
+}
+
+DEFUN(show_rate_counters,
+      show_rate_counters_cmd,
+      "show rate-counters",
+      SHOW_STR "Show all rate counters\n")
+{
+	rate_ctr_for_each_group(rate_ctr_group_handler, vty);
+	return CMD_SUCCESS;
+}
+
 static int config_write_stats_reporter(struct vty *vty, struct osmo_stats_reporter *srep)
 {
 	if (srep == NULL)
@@ -620,4 +636,5 @@
 	install_element(CFG_STATS_NODE, &cfg_stats_reporter_disable_cmd);
 
 	install_element_ve(&show_stats_asciidoc_table_cmd);
+	install_element_ve(&show_rate_counters_cmd);
 }